简介
CMD、AMD、Commonjs、UMD、IIFE、ESModule等均是前端模块化程序设计的规范,即以功能块为单位进行程序设计实现其求解算法的方法(此方法即为模块化)的规范,目的是降低程序复杂度。
时间轴
对比表
| 模块规范 | 加载方式 | 浏览器支持 | 服务端支持 | 模块定义 | 模块导出 | 模块引入 |
|---|---|---|---|---|---|---|
| CommonJS | 运行时加载 | F | T | 当前文件 | module.exports | require |
| AMD | 异步加载 | T | T(需要RequireJS 的 Node 适配器 r.js 配合使用) | define | return或使用简化的 CommonJS 包装器 | require |
| CMD | 运行时加载 | T | T(需要seajs 配合使用) | define | exports 或 reurn 或 module.exports | require |
| UMD | AMD的加载方式或CommonJS的加载方式 | T | T | AMD的模块定义或CommonJS的模块定义 | AMD的模块导出或CommonJS的模块导出 | AMD的模块引入或CommonJS的模块引入 |
| ESModule | 编译时加载 | T | T | 当前文件 | export | import |