Почему перемещение объекта в массив приводит к сбою Gulp Uglify
У меня есть gulpfile, который должен минимизировать мои js-файлы в обычном режиме. У меня есть одна функция, которая запускает каждый цикл, имеющий следующую строку:
newArr.push({[keyName]:val});
Эта конкретная строка приводит к сбою uglify.
Вся функция такова:
function convertArrToNestedObjArr(arr, keyName) {
var newArr = [];
if(arr) {
$.each(arr, function(k, val) {
newArr.push({[keyName]:val});
})
}
return(newArr);
}
Процесс Gulp дает следующую ошибку:
stream.js: 94 throw er; // Необработанная ошибка потока в канале. ^ Ошибка при новом JS_Parse_Error (eval at ...
1 ответ
Вы сказали, что этот код находится в файле, предназначенном для отправки в браузер, который был увеличен в процессе gulp.
Эта строка использует обозначение имени вычисляемого свойства ES2015. Я подозреваю, что минификатор просто еще не понимает этого. Если это произойдет, то в настоящее время довольно много браузерных JavaScript-движков этого не делают.
Если это проблема, проведите трансплантацию перед уродством (возможно, с Вавилоном или Трейсером) или замените
newArr.push({[keyName]:val});
с
var o = {};
o[keyName] = val;
newArr.push(o);