用YUI Compressor压缩SeaJS单独模块文件

近来正在研究SeaJS,碰到了压缩问题。原因是YUI Compressor在压缩SeaJS模块文件时,会把模块文件里面的requireexportsmodule等参数给替换了,导致SeaJS无法辨认,如下面代码所示:

define(function(require,exports,module){
	var $ = require("jquery");
	console.log($);
});

上面这段代码经过YUI Compressor压缩后就会变成下面这样:

define(function(b,a,c){var d=b("jquery");console.log(d)});

可以看到requireexportsmodule三个参数名已经被替换了,如果不想被替换,可以用YUI Compressornomunge功能。在刚才的模块文件里面添加"require:nomunge,exports:nomunge,module:nomunge";,如下所示:

define(function(require,exports,module){
	"require:nomunge,exports:nomunge,module:nomunge";
	var $ = require("jquery");
	console.log($);
});

YUI Compressor压缩后的代码如下:

define(function(require,exports,module){var a=require("jquery");console.log(a)});

看,requireexportsmodule三个参数名并没有被替换了,而且增加的"require:nomunge,exports:nomunge,module:nomunge";也会被自动消除,这样在SeaJS里就可以正常使用了。不过有下面几点需要注意:

  • "require:nomunge,exports:nomunge,module:nomunge";这段文字必须要添加在函数体的开始位置;
  • 只有YUI Compressor才会消除"require:nomunge,exports:nomunge,module:nomunge";字样,其它压缩软件不能自动消除;
  • YUI Compressor不支持合并多个SeaJS模块文件的功能,如果想合并多个SeaJS模块文件,要用spm

附:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值