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

Local install packages with Stack for use with runhaskell

我正在开发许多小的 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 上对类似问题的回答中所建议的那样:。我不喜欢这样,因为我想在某个文件中明确列出我的所有依赖项。

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

您可能想使用脚本解释器。很抱歉回答过于简洁,但我正在 phone。这是它的文档:https://docs.haskellstack.org/en/stable/GUIDE/#script-interpreter

您也可以只执行 "stack build regex-posix",然后该包将可用于 runhaskell。然而,这更容易出错,因为没有使用包隐藏,所以更难判断脚本实际依赖什么