`stack haddock --skip <pkgname>`有什么作用?

时间:2018-10-19 15:41:44

标签: haskell-stack haddock haskell-src-exts

由于一个软件包导致挂起而无法在我的项目上运行stack haddock后(请参见How to show progress of `stack haddock`?),我尝试使用

跳过该软件包

stack haddock --skip haskell-src-exts

但是无论如何,它仍然试图躲避haskell-src-exts(并挂起)。 --skip应该做什么?

1 个答案:

答案 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-testsintegration-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。