模块化演变历史
stage-1: 文件划分
模块化方式
commonJs
- 一个文件就是一个模块
- 每个模块都有单独的作用域
- 通过module.exports导出成员
- 通过require函数载入木块
AMD(Asynchronous Module Definition)
依赖require,js ```javascript //定义一个模块 define(“module1”,[“Jquery”,”./module2”],function(){ return {
} })start: function(){}....
//载入一个模块 require([‘module1’], function(module1){ module1.start(); })
<a name="VqeYi"></a>
## CMD
依赖Sea.js
```javascript
//所以模块都通过define来定义
define(function(require,exports,module){
module.exports=...;
})
ESModules
- 自动采用严格模式,忽略”use”strict”
- 每个ESM模块都是单独的私有作用域
- ESM是通过CORE去请求外部js模块
- ESM的script标签会延迟执行脚本