babel精讲
作者:互联网
作用
类似于一个语法转换器,将所有语法转换为ES5语法,它本身只管语法的转化,不管api,不管模块。
因此,babel经常与打包工具配合使用。
通过babel命令将文件转换为ES5文件
npx babel src/index.js
配置
我们可以通过对.babelrc对babel进行配置,babelrc主要由presets与plugin两部分组成
babel/preset-env是什么?
babel/preset-env是一堆babel的plugin的集合,ES6,ES7,ES8....的解析都在preset-env里
babel-polyfill是什么?
babel-polyfill是一种补丁,是对preset-env的补充,可能preset-env的解析并不全面,不包括一些最新的ES语法的解析,因此需要使用polyfill进行补充
babel-polyfill本身就像是一个皮包公司,它主要是由core-js和regenerator两部分组成,因此只要直接使用core-js和regenerator两部分,废弃掉babel-polyfill都可以,在babel7.4之后,babel-polyfill已经被废弃,推荐直接使用core-js和regenerator
core-js如何实现按需引入?
babel本身只解析语法,不做模块化,因此如果需要按需引入就需要对.babelrc的presets进行配置
{
useBuiltIns: 'usage',
coreJS: 3
}
babel-runtime是什么?
babel-polyfill(core-js,regenerator)有一个很严重的问题,在它引入core-js与regenerator的同时会对全局作用域进行污染,而babel-runtime会将这些引入的语法进行一个名称上的包装,使其不会污染全局作用域
babel-node是干嘛的
babel-node可以在运行时将ES标准的代码转换为CJS格式。
标签:core,regenerator,polyfill,精讲,js,语法,babel 来源: https://www.cnblogs.com/JianXin1994/p/16359456.html