Rhino配合Closure Compiler生成已存在函数的问题咨询
用Closure Compiler优化RequireJS项目实操
我最近在折腾用Closure Compiler优化一个RequireJS项目,参考了整项目优化的方案,用app.build.js做核心配置,这里把我的实操过程和要点分享出来:
一、核心配置文件:app.build.js
我是按照整项目优化的思路来编写这个配置文件的,最关键的是把optimize选项设置为closure,这样RequireJS的优化工具就会调用Closure Compiler来处理代码。
二、执行优化命令
我是通过Rhino在Java环境下运行优化命令的,具体命令如下:
java -classpath ./tools/lib/rhino/js.jar;./tools/lib/closure/compiler.jar org.mozilla.javascript.tools.shell.Main ./tools/require/r.js -o app.build.js dir=./temp optimize=closure
这里要注意classpath里的路径要和你本地的文件结构对应,别写错jar包的存放位置。
三、Closure Compiler专属配置
在app.build.js里,我还添加了Closure Compiler的专属配置来细化编译规则,举个配置示例:
({ baseUrl: "./src", dir: "./temp", optimize: "closure", closureCompiler: { compilationLevel: "ADVANCED_OPTIMIZATIONS", warningLevel: "VERBOSE", // 指定externs文件,避免第三方库被误编译 externs: ["./externs/jquery.js"] }, // 其他RequireJS优化配置 modules: [ { name: "main" } ] })
如果用ADVANCED_OPTIMIZATIONS编译级别,一定要准备好对应的externs文件,不然第三方库很容易被误修改导致运行报错。
内容的提问来源于stack exchange,提问作者Guian
相关产品推荐
相关产品推荐

