参考教程http://blog.csdn.net/it_man/article/details/7782623
1.为什么需要模块?
①https://github.com/seajs/seajs/issues/547
为了解决命名空间冲突、文件依赖关系,seajs把每个js文件看成一个模块
②seajs是一个基于CMD规范的模块加载器,相对于基于AMD规范的RequireJS,此外还有CommonJS规范。
AMD和CMD规范http://www.makumo.com/js-modules-amd-cmd.cat
CMD规范https://github.com/seajs/seajs/issues/242
2.seajs学习
①下载安装
https://github.com/seajs/seajs
②配置
seajs.config({
// 这是基本路径
base:"./sea-modules/"
//如果存在多个路径则保存起来,在alias调用这个变量
paths:{
"gallery":"https://a.alipay.com/gallery"
}
//配置各个组件
alias:{
//别名:路径(相对于base),别名是在模块调用时使用到
"jquery":"jquery/jquery.js"
“jquery-cookie”;"gallery/jquer/cokie.js"
}
});
③使用
先参考CMD规范内容,再来看它的使用会简单些。
定义一个模块define
模块的载入require
seajs.use,require和require.async
在script标签中使用data-main
模块向外提供接口export
注意use方法的使用
可以参考edusoho的app.js文件,其中里面有段代码
seajs.use(name, function(module) {
if ($.isFunction(module.run)) {
module.run();
}
});
注意模块化的加载和启动方式
3.包管理工具spm,配合seajs使用,比如aralejs。
http://docs.spmjs.org/doc/
spm分为spm2和spm3,我以为spm2为seajs服务,然后spm3就雄心勃勃了,要做成和npm bower一样的包管理工具和构建工具,是seajs为他服务;
我们还是先看spm2吧。
window下安装时出现git未安装的问题,需要配置git到环境变量,百度吧。
然后安装spm的一些插件。
spm2可以做的是:bower、transport、一些插件(初始化项目等等)