带有Stack的本地安装包,用于runhaskell

时间:2018-01-23 10:45:41

标签: haskell haskell-stack

我正在开发许多小的haskell程序,我将其作为脚本文件使用。我理想的用例是stack runhaskell one-of-the-scripts.hs来运行它们。

某些文件使用hackage中的包依赖,例如regex-posix。因此我收到一条错误消息

    Could not find module `Text.Regex.Posix'
    Use -v to see a list of the files searched for.
  |
2 | import Text.Regex.Posix
  | ^^^^^^^^^^^^^^^^^^^^^^^

我考虑过两个选择:

  1. 使用cabal包并在其中指定依赖项。我不喜欢这个解决方案,因为它(据我所知)在我总是编译代码的工作流程中使用。我想改用stack runhaskell

  2. 沟渠堆叠并直接使用cabal,正如在SO:https://stackoverflow.com/a/13485987/4050510上对类似问题的回答中所建议的那样。我不喜欢这个,因为我希望明确地将所有依赖项列在某个文件中。

  3. 从hackage本地安装软件包的最简单方法是什么,然后可用于stack runhaskell

1 个答案:

答案 0 :(得分:1)

您可能想要使用脚本解释器。很抱歉答案简明扼要但我在手机上。这是以下文档:https://docs.haskellstack.org/en/stable/GUIDE/#script-interpreter

您也可以执行"堆栈构建regex-posix",然后该程序包将可用于runhaskell。但是,这更容易出错,因为没有使用包隐藏,因此告诉脚本实际依赖的内容比较麻烦