一、模块化发展历程
- 有利于代码分离,解耦以及复用
- 团队并行开发
- 避免命名冲突
- 相互引用,按需加载
单例设计模式
AMD
CMD
UMD
CommenJS
ES6 Module
二、单例
// 单例模式
let module = (function() {
const init = () => {}
return {
init
}
})()
module.init()
三、AMD
依赖前置
require.js
define([name]?, [dependence]?, [facory])
四、CMD
依赖就近
sea.js
define(function (requie, exports, module) {
//依赖可以就近书写
var a = require('./a');
a.test();
...
//软依赖
if (status) {
var b = requie('./b');
b.test();
}
});
四、commonJS
node.js
文件即模块
// require
// module.exports