我想在yui压缩器中压缩javascript, 如何编写压缩javascript的Make文件。
因为语法很难而且不理解, 你能给我一个样本Makefile吗?
答案 0 :(得分:10)
你的makefile看起来像
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将替换为生成匹配源文件名和目标文件名的规则。