fis3 icon indicating copy to clipboard operation
fis3 copied to clipboard

自带uglify-js无法压缩(function(){})()这种js

Open wjboy opened this issue 7 years ago • 6 comments

  • 操作系统:win8
  • Node版本:8.11
  • FIS版本:3.4.32
  • 解决方案:
  • 依赖插件:

js内容为 (function(){ var currentInfoType = 12; })(); 无法压缩

wjboy avatar Jun 25 '18 02:06 wjboy

这个我看看

你指的无法压缩以啥意思,现在的表现有两个

  1. 如果有些语句没有什么意义就清空处理了(表现是,未对 UglifyJS 深度研究过)
  2. 有意义的会做进一步的压缩,比如变量下面有个 console.log 就会压缩

这块我们对齐一下关注的点再进一步去做事情。

oxUnd avatar Jun 27 '18 02:06 oxUnd

具体代码如下: 我自己又测试了一下如果有 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();
});

})();

wjboy avatar Jul 02 '18 07:07 wjboy

经过自己的插排, forEach是ES6的语法,fis3自带的js压缩插件fis-optimizer-uglify-js内部用的是UglifyJS 2,而UglifyJS 2只能支持ES5. 建议fis3吧内部用的UglifyJS从2升级到3

wjboy avatar Jul 02 '18 09:07 wjboy

跟forEach没关系,是箭头函数的问题,uglifyjs不支持的,uglify-es或者babel才行

fisker avatar Jul 03 '18 04:07 fisker

@fisker @xiangshouding fis3如何使用babel或uglify-es,需要自己写插件吗?

wjboy avatar Jul 13 '18 07:07 wjboy

@wjboy 现在来看应该需要包装一个简单的插件。

oxUnd avatar Jul 18 '18 08:07 oxUnd