无法为Stack项目添加额外的deps

时间:2018-01-14 15:18:31

标签: haskell haskell-stack

我试图用Stack建立一个Haskell项目。我创建了一个项目:stack new project1并添加了建议的依赖项(极化导弹)以了解它是如何工作的。

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
  | ^^^^^^^^^^^^^^^^^^^^

有什么问题?我错过了什么?

修改

当我运行stack solver时,我明白了:

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'

难道不奇怪吗?就像它认为不需要我的依赖?

1 个答案:

答案 0 :(得分:11)

您还需要将依赖项添加到project1.cabal

build-depends:
    base >=4.7 && <5
  , project1
  , acme-missiles

或者,在较新版本的Stack上,您应该使用package.yaml代替:

dependencies:
- base >= 4.7 && < 5
- acme-missiles

我不能说我对这是如何工作的深入了解,但如果我理解正确,那么您应该添加依赖关系的主文件位于.cabalpackage.yaml文件。 extra-deps中的stack.yaml字段可以指示您是否具有偏离当前使用的LTS的依赖项。