为什么将对象推送到数组会导致 Gulp Uglify 崩溃
Why pushing object to array causes Gulp Uglify to crash
我有 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; // Unhandled stream error in pipe.
^ Error
at new JS_Parse_Error (eval at ...
你说过这段代码在一个文件中,该文件注定要发送到在 gulp 进程中被丑化的浏览器。
该行使用 ES2015 的 computed 属性 name 表示法。我怀疑缩小器还不明白这一点。如果是这样,那么相当多的浏览器 JavaScript 引擎还没有。
如果这是问题所在,请在丑化之前进行转译(可能使用 Babel 或 Traceur),或者替换
newArr.push({[keyName]:val});
和
var o = {};
o[keyName] = val;
newArr.push(o);
我有 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; // Unhandled stream error in pipe. ^ Error at new JS_Parse_Error (eval at ...
你说过这段代码在一个文件中,该文件注定要发送到在 gulp 进程中被丑化的浏览器。
该行使用 ES2015 的 computed 属性 name 表示法。我怀疑缩小器还不明白这一点。如果是这样,那么相当多的浏览器 JavaScript 引擎还没有。
如果这是问题所在,请在丑化之前进行转译(可能使用 Babel 或 Traceur),或者替换
newArr.push({[keyName]:val});
和
var o = {};
o[keyName] = val;
newArr.push(o);