CommonJS 与ES6 Module的区别
2021-03-31 本文已影响0人
湘兰沅芷
1.模块定义和导出 (见webpack模块导入导出文章)
2.CommonJS :模块依赖关系的建立发生在代码运行阶段(require的模块路径可以动态指定,支持传入表达式,甚至if判断是否加载某个模块)
ES6 Module:代码编译阶段(只能放在代码头部)
好处:
1.通过静态分析可以在打包前去掉未使用的模块,减小打包体积。
2.模块变量类型检查。js是动态类型寓言,不会在代码执行前检查类型错误。ES6 Module静态模块结构有助于确保模块之间传递的值或接口类型正确。
3.编辑器优化,CommonJS本质导入的是一个对象,ES6 Module支持导入变量,减少引用层级,程序效率更高。