5

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

因为语法难,看不懂,能给我一个Makefile的样例吗?

4

1 回答 1

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要压缩到的文件列表由变量的内容给出。The%是一个通配符,make 将代替它生成匹配源文件名和目标文件名的规则。

于 2009-06-17T03:25:31.477 回答