我使用stack new Proj-Name simple
命令创建了一个新项目,并在我在/src
目录中创建的文件中导入了GHC基础库import System.Process
之外的模块。运行stack build
成功,文件按照我的预期运行。但是,当我在同一目录中运行stack ghci
时,没有将System.Process
列为可导入模块。
如何制作以便所有导入的模块都可以在stack ghci
内导入?
答案 0 :(得分:1)
当您运行stack new ...
时,即使使用simple
模板,您也会注意到创建了几个允许堆栈工作的文件。其中一个是Proj_Name.cabal
文件,如果您打开它,您会注意到文件的executable Proj_Name
部分下方有main-is: Main.hs
行。
默认main-is
文件为Main.hs
,但可能是任何内容。您的导入应该在您想要充当主文件的任何文件中。因此,在这种情况下,您可以简单地将您创建的文件的名称(具有System.Process
导入)替换为该行中的Main.hs
。
在此之后,运行stack build
,在build-depends: base >= 4.7 && < 5
的{{1}}行下添加它告诉您的任何依赖项,在这种情况下将如下所示:
Proj_Name.cabal
再次运行build-depends: base >= 4.7 && < 5
, process
(如果还有任何问题需要咨询stack guide,现在stack build
应该将您在该文件中导入的所有模块都可用