luo*_*990 11 haskell cabal haskell-stack
我发现,当我使用该stack new the-project-name new-template命令时,会在新目录中生成许多文件.我注意到以下4个特殊文件:
package.yaml
stack.yaml
Setup.hs
the-project-name.cabal
Run Code Online (Sandbox Code Playgroud)
这4个文件似乎打算为软件包管理软件提供元数据,但它们看起来很混乱,我的意思是,为什么有4个,为什么不只是一个,它们之间有什么区别?
She*_*rsh 12
这些配置文件用于不同的目的.目前尚不清楚什么是更好的:拥有单个全包配置文件或不同的构建工具和不同目标的不同文件.
此文件包含您的包的说明.比如,模块列表,库依赖项,编译器选项,项目元数据(作者姓名,包版本等).此描述特别针对cabal格式指定.
该配置文件由hpack工具使用.它允许指定您在.cabal文件中指定的相同内容.但是以YAML格式而不是自定义cabal格式.它还增加了一些功能cabal.如果您现在不想深入hpack了解,可以安全地删除package.yaml文件.请注意,该.cabal文件是由文件生成的hpack,package.yaml因此如果您正在使用,则不得编辑.cabal文件hpack.
stack构建工具的配置.添加一些额外的配置参数.最重要的是:LTS解析器的名称.
用于添加一些构建挂钩.几乎在所有情况下,您也可以删除此文件.但我可以从我们的工作中为您提供此文件的真实用法示例.
我们正在编写服务,其中不同的节点应使用协议缓冲区格式进行通信.TL; DR用于描述消息规范的相当好的格式.这些消息写在带扩展名的文件中.proto.但我们实际上想要使用Haskell类型.存在proto-lens可以采用以协议缓冲区格式编写的文件的库,解析这些文件并生成包含表示这些消息的数据类型的Haskell模块.应在项目编译之前完成此文件生成.所以这个过程在Setup.hs文件中描述.
| 归档时间: |
|
| 查看次数: |
903 次 |
| 最近记录: |