如何在构建 haskell 包时获取 运行 额外命令的堆栈?

How to get stack to run extra commands when building a haskell package?

我已经制作了一个脚本来编译我的 haskell 程序(到目前为止只是包含在单个源文件中的简单脚本),在调用 ghc 之前包含以下行:

echo "Running hlint"
hlint 
echo "Running scan"
~/.cabal/bin/scan -j False 
echo "Running doctest"
~/.cabal/bin/doctest 

</code> 指的是单个 .hs 源文件。)</p> <p>如何在使用堆栈管理和构建我的程序时完成一些等效检查?</p> <p>我想设置一些全局配置,以便在我的任何项目中调用 <code>stack build 时在源代码上自动包含这些命令 运行。

Stack 提供了一个 --exec 标志,允许您执行此操作。查看 'Flags' documentation 以获得完整示例,但我们可以看到如下命令:

$ stack build --test --exec "echo Hi!"

其中 --exec 是 'do other stuff' 并且 --test 运行测试。

与您的示例相关,它可能看起来像:

stack build \
  --exec "hlint foo" \
  --exec "~/.cabal/bin/scan -j False bar"
  --exec "~/.cabal/bin/doctest baz"