【问题标题】:Makefile which compresses javascript压缩 javascript 的 Makefile
【发布时间】:2010-11-03 13:01:00
【问题描述】:

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

因为语法难,不懂, 你能给我一个 Makefile 样本吗?

【问题讨论】:

  • 老实说,我真的不知道为什么有人再为此烦恼了。只需使用 gzip 编码为您的 JS 提供服务并完成它。 Gzip 将非常有效地压缩文本。
  • 当然我希望效果转移效率。另外我期待阅读我的js代码有点困难的效果。
  • @SpliFF:因为缩小使 gzip 更高效。如果你被一些大型臃肿的 JS 框架困住,那会有所不同......

标签: javascript makefile jscompress


【解决方案1】:

你的 makefile 看起来像

code.compressed.js: code.js
    compressor -o $@ $<

请注意,第二行以 制表符 缩进,而不仅仅是空格。 make 实用程序关心这一点。

code.compressed.js 是要写入文件的名称,code.js 是要压缩的文件,compressor 是执行压缩的程序。

-o 标志表示输出文件,遵循编译器和类似工具的约定。您的可能会有所不同;检查它的文档。

变量$@ 是“此规则的目标”的Makefile 简写,在本例中为code.compressed.js。同样,$&lt; 是“此规则的第一个依赖项”的缩写。这些变量很有用,因此您无需重复自己,也无需在文件重命名时进行重复更改。

如果你有多个文件都将被压缩成一个输出文件,你可以把它们都放在依赖行上,然后在构建规则中使用特殊变量$^来指定所有这些:

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

【讨论】:

  • 感谢您的简单回答。但是,有很多源代码。这种情况怎么办? code1.js,code2.js,,,
  • 请将该扩展编辑到您的问题中,而不是将其留在评论中。
猜你喜欢
  • 2010-11-27
  • 2020-07-26
  • 2012-01-29
  • 2011-12-06
  • 1970-01-01
  • 1970-01-01
  • 2022-06-15
  • 2010-11-04
相关资源
最近更新 更多