小编Jas*_*son的帖子

我可以在不重新编译的情况下生成“完全公开”和“正常”版本的 Haddock 文档吗?

我正在使用 Haddock(带堆栈)为我正在开发的软件套件生成文档。我想生成 Haddock 文档的 2 个变体;一种通常(例如,vanilla stack haddock),一种具有完全暴露的模块(例如,stack haddock --haddock-arguments "--show-all")。但是,我发现我需要stack clean在黑线鳕生成之间运行,否则我运行的第二个命令不会生成任何东西。我们想尽量避免这种情况stack clean(这导致需要重新编译整个软件套件)。

预期步骤(不起作用):

  1. stack haddock
  2. ... 将文档复制到我们的本地文件夹以供公开发布 ...
  3. stack haddock --haddock-arguments "--show-all"
  4. ... 将完全公开的文档复制到我们的本地文件夹以供公开发布 ...

上述步骤的问题在于,第二个步骤stack haddock将默认使用已经构建的 haddock 文档,而忽略"--show-all"更改。我们可以通过添加一个stack clean中间运行来解决这个问题:

工作步骤:

  1. stack haddock
  2. ... 将文档复制到我们的本地文件夹以供公开发布 ...
  3. stack clean
  4. stack haddock --haddock-arguments "--show-all"
  5. ... 将完全公开的文档复制到我们的本地文件夹以供公开发布 ...

但是,添加此stack clean步骤会导致对第 4 步的整个软件套件进行额外的重新编译。无论如何,我是否可以绕过需要此步骤?我已经尝试$(stack path --local-install-root)/doc在第二个文档生成之前手动删除该文件夹,但是如果没有完全清理,这不起作用。

我的堆栈版本是Version 2.7.3, Git revision 7927a3aec32e2b2e5e4fb5be76d0d50eddcc197f x86_64 hpack-0.34.4.

haskell haddock haskell-stack

6
推荐指数
0
解决办法
60
查看次数

标签 统计

haddock ×1

haskell ×1

haskell-stack ×1