首页 > 解决方案 > 震动构建中的“单向”依赖关系?

问题描述

我的大脑现在可能被炸了(已经连续 3 天在这个 Shakefile 上进行黑客攻击),但我就是不知道如何在 Shake 中表达“单向”依赖?

我正在构建(生成)数百个 HTML 文件,为了让它们正常工作,它们需要生成一个通用的 CSS 文件。如果我说类似...

"**.rst" %> \out -> do
  need [cssFile, templateFile]
  -- compile RST => HTML

...如果通用 CSS 文件发生更改,它会导致所有 HTML 文件被重新构建!

我如何表达以下内容shake

标签: haskellshake-build-system

解决方案


您可能正在寻找orderOnly, 从文档中:

定义仅顺序依赖项,这些依赖项总是在继续之前构建,但不是此操作的依赖项。对于定义您认为可能是真正的依赖项的生成依赖项最有用。如果它们被证明是真正的依赖项,则应在之后添加显式依赖项。

它与您所追求的并不完全匹配(您实际上并不需要在规则继续之前构建它),但它应该足够接近您想要的。


推荐阅读