webpack-模块化兼容性

390 阅读1分钟

由于webpack同时支持CommonJS模块化标准和ES6 module模块化标准, 不管用什么标准写的代码,它都能识别依赖并进行打包。

假如:一个模块用ES6导出,用CommonJS导入(或者用ES6导入,用CommonJS导出),webpack会如何处理?导出的到底是什么?

因此,我们需要理解ES6和CommonJS互相操作时webpack是如何处理的。

同模块化标准

如果导入和导出,使用的是同一种模块化标准,打包后的效果和之前学习的模块化没有任何差异。

下图分别为:用CommonJS导出和导入;用ES6 module导出和导入;

image.png

不同模块化标准

不同的模块化标准,webpack按照如下方式处理:

下图分别为:用ES6 module导出、用CommonJS导入;用CommonJS导出、用ES6 module导入;

image.png