四种常见的JS模块化管理方法的比较

语法 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

猜你喜欢

转载自blog.csdn.net/Mrfive555/article/details/79668797
今日推荐