当我使用单个文件的haskell代码而没有项目时,我只能依靠base
包并导入它的模块,但是当我想从其他包中导入模块时,我必须创建一个新项目并将其编辑为package.yaml
并将项目添加到dependencies
中,这些工作对于单个文件来说太繁琐了。
我可以将我最常用的dependencies
列表放到某个地方,以便当我通过stack exec -- ghci my-file.hs
加载单个文件时,可以正确找到导入的模块吗?
答案 0 :(得分:2)
有几种选择:
The --package
flag,用于临时调用;
The global project(另请参见this answer),这是位于~/.stack/global-project/stack.yaml
(或操作系统的对应路径)的默认配置,在实际项目之外工作时会启动;和
Stack scripts,相当于在源文件顶部放置一个用于指定堆栈调用的标头,如本示例中所述,取自文档...
#!/usr/bin/env stack
{- stack
script
--resolver lts-6.25
--package turtle
--package "stm async"
--package http-client,http-conduit
-}
...,并且在您想要便携式的东西时很有用。