babel
babel-loader
加载器,用于将js
代码转换为成 ast
树进行语法分析和处理,构建过程中将 ES6+ 语法转换为浏览器可执行的JS代码
@babel/core
Babel 的核心库,提供了核心的转换功能和 API
@babel/preset-env
polyfill
(补丁)的集合,支持语法解析但不支持特殊的 API,如 promise、includes
,并且会造成全局和原型污染
core-js
提供 JavaScript 标准库的库,它包含了一些新的 JavaScript API 和全局对象的 Polyfill 实现。
它可以用来实现浏览器中缺失的新特性。
@babel/plugin-transform-runtime
减小体积,将代码中的公共辅助函数提取到单独的模块中,并通过导入的方式引入,以减少冗余代码,会自动引入 @babel/runtime
来提供转译所需的运行时函数和工具
babel/polyfill
core-js 满足不了yield
但regenerator
库支持,babel/polyfill
集合了core-js
、regenerator
但 babel 7.4弃用了babel-polyfill
,推荐直接使用 core-js
,regenerator
.babelrc
- 常规配置:
{
"presets": [
[
"@babel/preset-env",
{
"useBuiltIns": "usage", // 按需引入
"corejs": 3
}
],
"@babel/preset-react" // react 项目
],
}