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

god*_*zsa 7 haskell haskell-stack

我正在尝试使用Stack建立一个Haskell项目.我创建了一个项目:stack new project1并添加了建议的依赖项(acme-missile),以了解它是如何工作的.

extra-deps:
- acme-missiles-0.3
Run Code Online (Sandbox Code Playgroud)

但是当我尝试launchMissile在Main中调用时它将无法工作.我明白了

Error:(3, 1)     Could not find module ‘Acme.Missiles’
    Use -v to see a list of the files searched for.
  |
3 | import Acme.Missiles
  | ^^^^^^^^^^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)

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

编辑

我跑的时候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'
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*ann 11

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

build-depends:
    base >=4.7 && <5
  , project1
  , acme-missiles
Run Code Online (Sandbox Code Playgroud)

或者,在较新版本的Stack上,看起来应该使用package.yaml:

dependencies:
- base >= 4.7 && < 5
- acme-missiles
Run Code Online (Sandbox Code Playgroud)

我不能说我对它的工作方式有深入的了解,但是如果我理解正确的话,你应该添加依赖项的主文件就在.cabalor package.yaml文件中.您可以extra-deps在该字段中stack.yaml指明您是否具有偏离当前使用的LTS的依赖项.