其他分享
首页 > 其他分享> > babel精讲

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