模块规范 | 默认面向环境与相互引用 | 加载方式 | 关键语法 | 常见格式转换工具 | 规范实现 |
---|---|---|---|---|---|
ES6模块 | 浏览器环境,nodeJS可引入ES6模块 CommonJs可加载ES6 ES6可加载CommonJS模块 | 异步加载(动态引用) | import export | Babel,ES6 module transpiler,SystemJs转ES5 | |
CommonJS | nodeJs | 同步加载(值的引用) | 模块引用:require 模块定义:exports 模块标识:module | browserify,tiny-browser-require ->兼容浏览器 | |
AMD | 浏览器端(向nodeJs靠近) | 异步加载(依赖模块预执行) | require([module], callback);define([],function()) | require.config()配置不兼容模块 | require.js,curl.js |
CMD | 浏览器端(向nodeJs靠近) | 异步加载(依赖模块懒执行) | define(function(require,exports,module){...}) | seajs | |
UMD |
参考资料
阮一峰 ECMAScript 6 入门 Module的加载实现!
有不准确或错误之处,望不吝赐教,共同进步