Односторонние зависимости в Shake-Build?

Мой мозг может быть жареным прямо сейчас (взломал этот Shakefile в течение 3 дней подряд), но я просто не могу понять, как выразить одностороннюю зависимость в Shake?

Я создаю (генерирую) сотни файлов HTML, и для их правильной работы им нужен один общий файл CSS. Если я скажу что-то вроде...

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

... это приводит к тому, что ВСЕ файлы HTML перестраиваются, если изменяется общий файл CSS!

Как мне выразить следующее в shake:

  • если x построено, убедитесь, что y также построено
  • однако, если y изменяется, x НЕ нужно перестраивать.

person Saurabh Nanda    schedule 21.08.2020    source источник


Ответы (1)


Возможно, вы ищете orderOnly из документации:

Определите зависимости только для порядка, это зависимости, которые всегда будут создаваться перед продолжением, но которые не являются зависимостями этого действия. В основном полезно для определения сгенерированных зависимостей, которые, по вашему мнению, могут быть реальными зависимостями. Если они окажутся реальными зависимостями, вам следует впоследствии добавить явную зависимость.

Он не совсем соответствует тому, что вам нужно (вам действительно не нужно, чтобы он был построен до того, как правило продолжится), но он должен быть достаточно близок к тому, что вы хотите.

person Neil Mitchell    schedule 21.08.2020