我的代码如下:
define('identity', function () {
// LOT OF CONSTANTS AND USAGE HAS BEEN REMOVED FOR BREVITY
'use strict';
var CREATE_ACCOUNT = 'CreateAccount';
var ACCOUNT = 'Account';
var CONNECT = 'Connect';
var SWITCH = 'Switch';
var FB = 'FB';
var PIPE_SEPARATOR = ' | ';
var DOT_SEPARATOR = '.';
var COMMA_SEPARATOR = ', ';
function concatenateWithDotSeparater(array) {
return concatenateWithSeparator(array,DOT_SEPARATOR);
}
function concatenateWithPipeSeparater(array) {
return concatenateWithSeparator(array,PIPE_SEPARATOR);
}
function concatenateWithCommaSeparater(array) {
return concatenateWithSeparator(array, COMMA_SEPARATOR);
}
function concatenateWithSeparator(array, separator) {
return array.join(separator);
}
return {
signUp: {
facebookConnect : concatenateWithDotSeparater([CREATE_ACCOUNT, FB, CONNECT]),
}
};
});
基本上,我有很多重复的常量,需要连接起来才能产生实际价值。因此,我创建了常量来保存重复值,然后通过函数连接它们。
但是当我尝试使用gulp-minify版本1.0.0缩小JS时,结果如下: 返回{注册:{facebookConnect:E([ “的createAccount”, “FB”, “连接”])}}
它注入了实际值。我该如何防止这种情况?
我想获得如下输出: 返回{注册:{facebookConnect:E([S,d,E])}}
我正在使用minify,如:
.pipe(minify({
ext: {
src: '.js',
min: '-min.js'
}
}))
请帮忙。
答案 0 :(得分:0)
如果设置选项mangle,则可以避免重命名某些变量,您应该在其中设置要保存的名称列表不可更改。在引擎盖下,gulp-minify
数据包使用uglify-es
数据包。 Look at it了解详细文档。
请尝试使用以下选项:
.pipe(minify({
ext: {
src: '.js',
min: '-min.js'
},
mangle: { reserved: ['CREATE_ACCOUNT', 'ACCOUNT', 'CONNECT'] // etc
}))