契机
多年以前,我们书写的是最原始的Javascript:
定义变量
var a = 1
定义函数
function b () {
// ...
}
函数对象添加属性或者方法
b.prototype.f1 = function () {}
慢慢的,随着新标准(ECMAScript2015)的出现,定义变量等已经不再局限于以前的方式,
定义变量不再只能用var
let a = 1
const b = 2
函数定义可用箭头函数
let c = () => {
// ...
}
函数声明已经可以用class替代
class D {
constructor() {
// ...
}
myProperty = 1;
myFunction () {
// ...
}
}
但是制约javascript书写的一个因素--浏览器--成为了拦路虎。
由于浏览器版本不一致的因素,为了达成统一能够使用最新的javascript语法,babel应运而生。
Babel是什么?
它是一个编译器也是一个转译器,旨在将Javascript最新语法转译为旧版语法,实现polyfill ,如此一来,可以根据用户使用的版本的浏览器根据配置来实现自己的polyfill。
如何去配置自己的Babel?
首先,在项目中创建.babelrc或者babel.config.js形式的文件:
需要注意的是以.js结尾的文件输出格式为commonJs格式,而.babelrc却是json格式。
在正式编写之前,我想,我们还需要了解下Babel是怎么实现编译工作的?
Babel是怎么读取配置文件的?
简而言之,当启动编译相关的命令后(通过Webpack或者Babel),在命令行输入命令之后,会将babel.config.js中配置的预设(preset)或者plugin等项解析,最终合并成最终的配置。
Babel的基本执行过程
涉及的核心包主要有3个:
@Babel/parser
@Babel/traverse
@Babel/generator
待补充...