gulp-minify заменяет имя переменной javascript значением там при вызове функции
У меня есть код как:
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]),
}
};
});
По сути, у меня было много констант, которые повторялись и должны быть объединены для получения фактической стоимости. Итак, я создал константы для хранения повторяющихся значений, а затем конкатенировал их через функцию.
Но когда я попытался минимизировать JS с помощью gulp-minify версии 1.0.0, результат был такой: return{signUp:{facebookConnect:e(["CreateAccount","FB","Connect"])}}
Введены фактические значения. Как я могу предотвратить это?
Мне нравится получать вывод вроде: return{signUp:{facebookConnect:e([s,d,e])}}
Я использую minify как:
.pipe(minify({
ext: {
src: '.js',
min: '-min.js'
}
}))
Пожалуйста помоги.
1 ответ
Вы можете избежать переименования некоторых переменных, если вы установите опцию mangle, где вы должны установить список имен, которые вы хотите сохранить неизменяемыми. Под капотом gulp-minify
Пакет использует uglify-es
пакет. Посмотрите на это для подробной документации.
Пожалуйста, попробуйте с этими опциями:
.pipe(minify({
ext: {
src: '.js',
min: '-min.js'
},
mangle: { reserved: ['CREATE_ACCOUNT', 'ACCOUNT', 'CONNECT'] // etc
}))