跳至主要內容

模块化

星星小于 1 分钟

模块化

ESModule 和 CommonJS

ESM

暴露模块:export default {} , export {} , export function(){} ,export const x = xxx

引入模块:import xxx from 'path', import {xxx} from 'path'

CommonJS

暴露模块:module.exports = value 或 exports.xxx = value // exports不允许被重写
// module.exports优先级高于exports 即同时出现会返回module.exports

引入模块:require(xxx),如果是第三方模块,xxx为模块名;如果是自定义模块,xxx为模块文件路径

对比

ESMCommonJSAMDCMDUMD
加载机制编译时运行时提前预加载编译时 & 运行时按需加载-
同步/异步异步同步异步异步,有延迟执行的情况-
适用场合浏览器、服务端服务端浏览器浏览器浏览器、服务端
是否常见☆☆☆☆☆☆
上次编辑于:
贡献者: wanghongjie