| 语法 | commonJS | ES6 | AMD | CMD |
|---|---|---|---|---|
| 导出 | module.exports = {} exports = {} | export default {} export var a = 10 | define(id?: String, dependencies?: String[], factory: Function(Object); | define(function(require, exports, module) {}); |
| 导入 | require(‘module’) | import module from ‘module’ | require([‘myModule’], function(myModule) {}); | var a = require(‘./a’); require.async(‘./b’, function(b) {}); |
| 加载 | 动态 – 同步 | 静态 | 动态 – 异步 | 动态 – 同步或异步 |
| 导出的对象 | 副本 | 引用 | ||
| 多次导出 | 同一个对象 | |||
| 模块作用域 | 文件 | 文件 | 文件 | |
| 循环加载时 | 加载已执行的部分 | 开发者控制(玄学) | ||
| 浏览器支持 | 是 | 否 | 是 | 是 |
| node支持 | 是 | 否 | 是 | |
| 典型环境 | nodejs | (babel,vue) | requireJS | Sea.js |
| 引用目录时 | 找package.json定义的main,或index |
四种常见的JS模块化管理方法的比较
最新推荐文章于 2024-05-23 20:00:00 发布
本文深入探讨了不同模块化编程方式的语法特点与应用场景,包括commonJS、ES6、AMD及CMD等规范,对比了它们之间的差异,并分析了各自在node.js及浏览器环境下的支持情况。
1455

被折叠的 条评论
为什么被折叠?



