common.js(cjs)
是node当中的模块规范,通过require/exports进行导入导出,仅支持node环境,且是动态加载,如果要在浏览器环境下使用,需用webpack之类的工具
esm(es module)
现代的模块化规范,在Node已经浏览器都支持
esm 为静态导入,正因如此,可在编译期进行 Tree Shaking,减少 js 体积。
- cjs 模块输出的是一个值的拷贝,esm 输出的是值的引用
- cjs 模块是运行时加载,esm 是编译时加载
是node当中的模块规范,通过require/exports进行导入导出,仅支持node环境,且是动态加载,如果要在浏览器环境下使用,需用webpack之类的工具
现代的模块化规范,在Node已经浏览器都支持
esm 为静态导入,正因如此,可在编译期进行 Tree Shaking,减少 js 体积。