AMD | ES Module | Common JS |
输出值的引用 | 输出值的拷贝(浅拷贝) | |
编译时,输出接口 | 运行时加载 | |
AMD 的缺点在于JavaScript 运行环境没有原生支持 AMD,需要先导入实现了 AMD 的库后才能正常使用 | import 和 export 这些关键字是在编译阶段就做了模块解析 | 模块解析发生在 执行阶段,因为 require 和 module 本质上就是个函数或者对象,只有在 执行阶段 运行时,这些函数或者对象才会被实例化。因此被称为 运行时加载 |
浏览器异步加载 | 用于浏览器端,异步加载 | 运行于服务器端,同步加载 |
不转换代码的情况下直接在浏览器中运行 | CommonJS 规范的流行得益于 Node.js 采用了这种方式,后来这种方式被引入到了网页开发中。 | |
典型应用 requirejs | CommonJS 的缺点在于这样的代码无法直接运行在浏览器环境下,必须通过工具转换成标准的 ES5。 |
ESM(ESModule)和CJS(CommonJS)的区别
于 2022-02-16 17:27:32 首次发布