总结:
common js和es module区别
当一个js文件申明的引入和导出方式为require('../index.js)/module.exports时webpack会将文件内容按照commonjs方式打包
当一个js文件申明的引入和导出方式为import xx from '.index.js/export/export default时webpack会将文件内容按照esmodule方式打包
两种类型导致的打包文件代码的差别会有不同的特性,两者混用会导致这样那样的问题
- CommonJS 模块输出的是一个值的拷贝,ES6 模块输出的是值的引用。
- CommonJS 模块是运行时加载,ES6 模块是编译时输出接口。
- CommonJS 模块的
require()是同步加载模块,ES6 模块的import命令是异步加载,有一个独立的模块依赖的解析阶段。 参考博客:common js 和es module有什么不一样