由于一个软件包导致挂起而无法在我的项目上运行stack haddock
后(请参见How to show progress of `stack haddock`?),我尝试使用
跳过该软件包
stack haddock --skip haskell-src-exts
但是无论如何,它仍然试图躲避haskell-src-exts
(并挂起)。 --skip
应该做什么?
答案 0 :(得分:1)
--skip
是在堆栈1.6.1中引入的,以避免构建项目的特定组件。组件对应于测试套件,可执行文件或基准套件。由于实施了背包支持,因此还必须包括库。
来自stack build --help
-跳过ARG跳过给定的组件,可以多次指定
文档会更加详细。
--skip
,跳过本地软件包的构建组件。它允许 您无需指定其他组件即可跳过测试套件和基准测试 (例如stack test --skip long-test-suite
将在没有long-test-suite
测试套件。请注意,跳过可执行文件将不起作用 第一次构建软件包是由于 an issue in cabal。 可以多次指定此选项以跳过多个组件。
例如,程序包my-package
可能具有一个库,一个可执行文件my-executable
和两个测试套件(unit-tests
和integration-tests
)。要构建和运行测试,您可以运行stack test
。添加--skip integration-tests
将导致integration-tests
组件无法构建(不运行)。
不幸的是,当前版本的堆栈(1.9分支)不支持针对个别依赖项跳过haddock,尽管不久之将来还会出现类似情况。我遇到了完全相同的问题(使用haskell-src-exts)。现在,我建议跳过所有haddock依赖项(--no-haddock-deps
)。
如果您希望将不与堆栈标志stack exec -- haddock
一起使用的参数传递给haddock,则可能希望使用--haddock-arguments
调用haddock。