Makefile压缩javascript

时间:2009-06-17 02:53:49

标签: javascript makefile jscompress

我想在yui压缩器中压缩javascript, 如何编写压缩javascript的Make文件。

因为语法很难而且不理解, 你能给我一个样本Makefile吗?

1 个答案:

答案 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将替换为生成匹配源文件名和目标文件名的规则。