SeaJS 中的模块默认都遵守 CMD 规范,但现实中已存在大量普通 JavaScript 类库,比如 jQuery、Underscore 等。使用 shim 插件,可以将这些普通 JS 文件转换成 CMD 模块,从而能在 SeaJS 中正常使用。
seajs.config({ plugins: [‘shim‘] }); |
一旦激活后,alias
配置项就可以接受 shim Object
配置。
seajs.config({ // 激活 shim 插件 plugins: [‘shim‘], // shim 配置项 alias: { // jQuery 的 shim 配置 ‘jquery‘: { src: ‘lib/jquery-1.9.1.min.js‘, exports: ‘jQuery‘ }, // jquery.easing 插件的 shim 配置 ‘jquery.easing‘: { src: ‘lib/jquery.easing.1.3.js‘, deps: [‘jquery‘] } } }); |
shim Object
shim Object
是一个对象:
‘key‘: { src: String, deps: Array, exports: String | Function } |
src
是字符串,表示文件路径。
deps
是数组,指定模块依赖。
exports
表示 require(key)
时应该返回哪个全局变量,比如 jquery 的是返回 jQuery
全局变量。exports
也可以是一个函数:
‘jquery‘: { src: ‘lib/jquery-1.9.1.min.js‘, exports: function() { return jQuery.noConflict(); } } |
通过 shim 插件,可以加载任何非 CMD 模块。
说明:一般在config中使用,先激活plugins: [‘shim’],然后在alias中配置要引用的插件,例如jquery等。
原文; http://www.k68.org/?p=1192