7

Например, если я разрабатываю интерфейсный веб-сайт, у меня может быть несколько файлов CoffeeScript , несколько файлов Sass , несколько файлов HTML и несколько изображений.

Файлы CoffeeScript должны быть скомпилированы в JavaScript, файлы Sass должны быть скомпилированы в CSS, и эти новые файлы должны быть уменьшены. Изображения должны удалить свои метаданные. Все полученные файлы необходимо переместить в новый каталог со своей структурой.

Ничто из этого не кажется особенно сложным, но я видел, как несколько человек использовали для этого make-файлы .

Я слишком неохотно изучаю, как использовать make-файлы? Какие преимущества они могут предложить по сравнению с простым bash-скриптом?

2 ответа2

6

Итак, вы правы в том, что это не так уж и сложно, преимущества, предлагаемые сейчас

  • Как говорит Игнасио, make - это параллельное построение. Используйте флаг -j .

  • Если вы правильно выразили свои зависимости, никогда не перестраивайте вещи, которые в этом не нуждаются. Конечно, вы можете получить это в скрипте bash, но это означает добавление сложности к скрипту (и я должен был бы прочитать страницу руководства, чтобы вспомнить, как), который make уже знает об этом.

  • Вы можете определить общие правила (суффиксные правила (старый стиль) или шаблонные правила (предпочтительно в GNU make)), которые работают со всеми файлами типа Bar, которые должны быть построены из типа Foo. Опять же, цикл будет обрабатывать это в bash, но make уже знает, как это сделать.

Но большое преимущество заключается в том, что если задача усложняется, ваш make-файл растет медленно и просто, в то время как ваш сценарий может неожиданно всплыть.

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

4

Makefiles позволяют легко распараллеливать. Так как make знает о зависимостях, он может организовать задания таким образом, чтобы все ядра системы использовались максимально эффективно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .