我正在尝试使用 Stack 建立一个 Haskell 项目。我创建了一个项目:stack new project1
并添加了建议的依赖项 (acme-missile) 只是为了看看它是如何工作的。
extra-deps:
- acme-missiles-0.3
但是当我尝试在 Main 中调用 launchMissile
时,它不起作用。我明白了
Error:(3, 1) Could not find module ‘Acme.Missiles’
Use -v to see a list of the files searched for.
|
3 | import Acme.Missiles
| ^^^^^^^^^^^^^^^^^^^^
有什么问题吗?我错过了什么?
编辑
当我运行堆栈求解器
时,我得到:
Using configuration file: stack.yaml
Using cabal packages:
- ./
The following changes will be made to stack.yaml:
* Dependencies to be deleted
extra-deps:
- acme-missiles-0.3
To automatically update stack.yaml, rerun with '--update-config'
这不是很奇怪吗?就像它认为不需要我的依赖一样?
最佳答案
您还需要将依赖项添加到 project1.cabal
中:
build-depends:
base >=4.7 && <5
, project1
, acme-missiles
或者,在较新版本的 Stack 上,您似乎应该使用 package.yaml
来代替:
dependencies:
- base >= 4.7 && < 5
- acme-missiles
我不能说我对其工作原理有深入的了解,但如果我理解正确的话,您应该添加依赖项的主文件位于 .cabal
或 package.yaml
文件。您可以在 stack.yaml
中的 extra-deps
字段中指示您是否具有偏离当前使用的 LTS 的依赖项。
关于haskell - 无法向 Stack 项目添加额外的 deps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48251027/