GulpUglifyError报错:含filter箭头函数的jQuery代码无法压缩如何解决
报错根因
你遇到的GulpUglify压缩失败问题不是filter方法导致的,问题出在你使用了ES6标准的箭头函数语法,你当前使用的gulp-uglify版本仅支持ES5语法,无法识别解析ES6+语法才会抛出错误。
修复方案
方案1:保留filter方法,替换箭头函数为ES5普通函数
直接修改问题行的写法即可,无需调整原有逻辑:
var array = window.location.pathname.split('/').filter(function(word) { return word.length > 0; });
方案2:完全替换filter实现,手动遍历过滤
如果你不想使用filter方法,可以用基础for循环实现同样的过滤逻辑:
var pathSegs = window.location.pathname.split('/'); var array = []; for (var i = 0; i < pathSegs.length; i++) { if (pathSegs[i].length > 0) { array.push(pathSegs[i]); } }
可选长期优化方案
如果后续项目需要大量使用ES6+语法,可以将构建流程中的gulp-uglify替换为gulp-terser,terser支持ES6及以上版本语法的压缩,无需额外转译即可正常构建。
内容的提问来源于stack exchange,提问作者MGmgmgmg
相关产品推荐
相关产品推荐

