Sea.js is a module loader for the web. It is designed to change the way that you organize JavaScript. With Sea.js, it is pleasure to build scalable web applications.
The official site: http://seajs.org/
记得看issue时有个大大说过,Seajs的玩法就是自己fork一份自己玩。
鉴于Seajs社区是朝着CMD规范靠拢的,而我等懒货在开发时绝壁不想改上游库包的,所以fork一份把原先的Shim补回来了...
Seajs 2.0.x可以把Shim做成插件的原因是内部模块加载方式导致的
2.1.x要支持对Non-CMD模块的延迟加载,只能改动内部代码
改动虽然不大,而插件也才30行代码,再搞成插件形式意义好像不大了...
所有Non-CMD模块加载前必须在Config里按照之前Shim插件的形式添加别名
seajs.config({
alias: {
"jquery": {
src: "lib/jquery.js",
exports: "jQuery" or function
},
"jquery.easing": {
src: "lib/jquery.easing.js",
deps: ["jquery"]
}
})
- 没加别名一律当做CMD模块加载
- 没有添加循环依赖判断
- 生产环境谨慎使用