我正在使用r.js为我的Require JS应用程序构建一个生产脚本,我正在寻找一种方法来使用备用压缩库或更改使用的默认值。我希望删除空格,但变量名保持不变。
我特别要求保留变量名称,而不是更改它们。对常量变量名称的需求引入了一些“代码味道”,但它使应用程序的配置文件对非专业编辑器更加健壮 - 所以请尽量避免在此处建议设计更改。
我目前将r.js配置为根本不优化JavaScript,这意味着不仅保留了变量名,还保留了空格。 gruntfile.js中的相关部分如下所示。
有人可以建议一种方法来压缩空格,但不能在r.js构建中更改变量名吗?
english: {
options: {
baseUrl: "js",
mainConfigFile: "js/app-en.js",
name: "app-en",
out: "js/dist/<%= pkg.name %>-en.js",
optimize: "none"
}
}
答案 0 :(得分:0)
r.js
优化器具有可用于控制缩小器操作方式的设置。使用的默认minifier是UglifyJS。 uglifyjs
选项告诉r.js
如何调用它。根据您已显示的设置,删除optimize: "none"
并添加uglify: { no_mangle: true }
是所需的:
english: {
options: {
baseUrl: "js",
mainConfigFile: "js/app-en.js",
name: "app-en",
out: "js/dist/<%= pkg.name %>-en.js",
uglify: {
no_mangle: true
},
}
}
UglifyJS采用的整套设置记录在案here。如果您需要或想要切换到UglifyJS2或Closure,r.js
可以使用uglify2
和closure
设置来设置其选项。
对于Uglify2,防止重整的设置为:
uglify2: {
mangle: false
}
关闭,我相信你想要:
closure: {
CompilationLevel: 'WHITESPACE_ONLY',
},