Makefile, который сжимает JavaScript
Я хочу сжать JavaScript в YUI компрессоре, Как написать файл Make для сжатия JavaScript.
Поскольку грамматика сложна и не понимает ее, не могли бы вы дать мне образец Make file для меня?
1 ответ
Ваш make-файл будет выглядеть примерно так
code.compressed.js: code.js
compressor -o $@ $<
Обратите внимание, что вторая строка имеет знак табуляции, а не только пробелы. Утилита make заботится об этом.
code.compressed.js
имя, в которое должен быть записан файл, code.js
это файл для сжатия, и compressor
программа, выполняющая сжатие
-o
Флаг указывает выходной файл, следуя соглашению компиляторов и аналогичных инструментов. Ваш может отличаться; проверьте его документацию.
Переменная $@
является сокращением Makefile для "цели этого правила", code.compressed.js
в этом случае. Так же, $<
является аббревиатурой для "первой зависимости этого правила". Эти переменные полезны, так что вам не нужно ни повторяться, ни повторять изменения при переименовании файлов.
Если у вас есть несколько файлов, которые будут сжаты в один выходной файл, вы можете поместить их все в строку зависимости, а затем использовать специальную переменную $^
в правиле сборки указать все из них:
code.compressed.js: code1.js code2.js
compressor -o $@ $^
С другой стороны, если вы хотите, чтобы они были сжаты по отдельности, вы можете написать шаблонное правило и использовать его для всех них:
TARGETS = code1.cjs code2.cjs code3.cjs
all: $(TARGETS)
%.cjs: %.js
compressor -o $@ $<
По умолчанию создайте первую видимую цель, которая all
в этом случае. Список файлов для сжатия определяется содержимым TARGET
переменная. %
является подстановочным знаком, который make заменит для генерации правил для сопоставления исходных и целевых имен файлов.