将本地包与 Haskell Stack 一起使用

dec*_*apo 2 haskell haskell-stack

假设我有两个项目(project-aproject-b),我想将项目 a 包含到项目 b 中,而不将项目 a 上传到堆栈。我怎样才能在本地发布包并将其包含到project-b中?

# package.yaml for project-b
dependencies:
- base      >= 4.7 && < 5
- project-a == 2.0.0.0
Run Code Online (Sandbox Code Playgroud)

dec*_*apo 6

特别感谢@arrowd 为我指明了正确的方向。这是我问题的答案,但如果其他人有更好的答案,我会接受。

项目a中运行命令

> stack sdist
Run Code Online (Sandbox Code Playgroud)

这会将您的项目打包成 tarball 并显示它所在的目录。

然后进入项目b ,在sectionstack.yaml下的文件中添加以下内容extra-deps

extra-deps:
- archive: /path/to/project-a/tar/file
Run Code Online (Sandbox Code Playgroud)

并在您的package.yaml文件中的依赖项下

dependencies:
# other dependencies
- project-a == 2.0.0.0
Run Code Online (Sandbox Code Playgroud)

然后运行

> stack build
Run Code Online (Sandbox Code Playgroud)

并且项目-a 将包含在项目-b 中。