gulp minify正在用函数调用中的there值替换javascript变量名
我有如下代码:gulp minify正在用函数调用中的there值替换javascript变量名,javascript,gulp,gulp-minify,Javascript,Gulp,Gulp Minify,我有如下代码: 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';
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([“CreateCount”、“FB”、“Connect”])}
它注入了实际值。我怎样才能防止这种情况
我希望得到如下输出:
返回{signUp:{facebookConnect:e([s,d,e])}
我正在使用minify,例如:
.pipe(minify({
ext: {
src: '.js',
min: '-min.js'
}
}))
请提供帮助。如果您将选项mangle设置为“应在何处设置要保存的名称列表”为“不可更改”,则可以避免重命名某些变量。发动机罩下的
gulp minify
数据包使用uglify es
数据包。有关详细文档
请尝试以下选项:
.pipe(minify({
ext: {
src: '.js',
min: '-min.js'
},
mangle: { reserved: ['CREATE_ACCOUNT', 'ACCOUNT', 'CONNECT'] // etc
}))
是的,我浏览了一些丑陋的js文档,但没有得到多少帮助。我试过你的建议,但没有用。谢谢你的帮助:)@Anuj Yadav好的。您可以尝试另一种解决方案-将常量设置为全局变量。