stack ghci没有加载本地模块?

时间:2016-05-27 09:01:34

标签: haskell ghci haskell-stack

我有

mainLogger.hs
Logger.hs

在我的本地目录中,mainLogger.hs引用Logger模块。

stack ghci:load mainLogger.hs时,我收到以下错误消息:

mainLogger.hs:6:18:
    Could not find module ‘Logger’
    It is not a module in the current program, or in any known package.

但是,如果我可以编译stack exec -- ghc mainLogger.hs并运行stack runghc mainLogger2.hs或让stack exec -- ghci正确加载模块。

任何人都知道是什么阻止stack ghci在本地目录中找到模块?

ps:我没有在这个目录中使用任何cabal文件或stack.yaml文件,因此它会回到我的全局stack.yaml config

2 个答案:

答案 0 :(得分:4)

如果你同时加载它们,你应该能够加载它们:

:load Logger.hs mainLogger.hs 

如果您没有cabal文件,我不知道您是否可以让GHCi在当前文件夹中查找丢失的模块,但如果您创建/初始化文件,则不需要这样做。

答案 1 :(得分:2)

现在应该在最新版本的堆栈中修复此问题。似乎当模块导入本地模块时,堆栈在其模块搜索路径中不包括本地目录。在最新的1.5.1。堆栈的版本,这已经修复 - 所以你应该只需键入

stack ghci mainLogger.hs