关于webpack,babel,es6,commonJS,import,require之间的联系

一. babel(语法转换)

1. 浏览器很多都不支持es6的语法,或者仅仅是部分支持,babel就承担了“翻译”的角色,把es6,es7的写法转换成es5的写法

2. babel转换后的代码是遵循commonJS模块规范的es5写法,而这个规范,浏览器并不能识别。因此导入到浏览器中会报错,而nodeJS是commonJS的实现者,所以在babel转换后的代码是可以在node中运行的。

3. 为什么import和require可以混用,因为babel是不会转换require,本身就是遵循语法不需要转换,之后通过webpack打包转换成浏览器可运行语法就行了

二. webpack(模块打包工具)

为了将babel生成的commonJS模块规范的es5写法能够在浏览器上直接运行,在webpack打包中就会有一套自己的loader专门来处理这些,可以转换成浏览器可运行代码

三. es6的Modules和commonJS的关系(模块语法)

es6的Modules导入导出是:import和export

commonJS的导入导出是:require和module.exports

作者:dlm17
本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/dlm17/p/13093898.html