自带uglify-js无法压缩(function(){})()这种js
- 操作系统:win8
- Node版本:8.11
- FIS版本:3.4.32
- 解决方案:
- 依赖插件:
js内容为 (function(){ var currentInfoType = 12; })(); 无法压缩
这个我看看
你指的无法压缩以啥意思,现在的表现有两个
- 如果有些语句没有什么意义就清空处理了(表现是,未对 UglifyJS 深度研究过)
- 有意义的会做进一步的压缩,比如变量下面有个 console.log 就会压缩
这块我们对齐一下关注的点再进一步去做事情。
具体代码如下: 我自己又测试了一下如果有 infoList.forEach( (item,index, ary)=>{ tmpAry.push('aaa'); }); } 这种语句就无法压缩
(function(){ function showInfoUI(){ var infoList = [{},{},{}]; var tmpAry = [];
if(infoList.length>0){
infoList.forEach( (item,index, ary)=>{
tmpAry.push('aaa');
});
}
}
$(document).ready(function(){
showInfoUI();
});
})();
经过自己的插排, forEach是ES6的语法,fis3自带的js压缩插件fis-optimizer-uglify-js内部用的是UglifyJS 2,而UglifyJS 2只能支持ES5. 建议fis3吧内部用的UglifyJS从2升级到3
跟forEach没关系,是箭头函数的问题,uglifyjs不支持的,uglify-es或者babel才行
@fisker @xiangshouding fis3如何使用babel或uglify-es,需要自己写插件吗?
@wjboy 现在来看应该需要包装一个简单的插件。