配置 Babel
Babel 可以配置啦!许多其他的工具都有相似的配置:ESLint (.eslintrc
), Prettier (.prettierrc
)。
所有的 Babel API 选项都允许配置。但如果选项需要 JavaScript,你可能需要使用 Javascript 配置文件。
你的使用情况?
- 想要以编程式创建配置?
- 想要编译
node_modules
?
为你准备了
babel.config.js
!
- 有一个静态配置只适用于简单的一个包?
为你准备了
.babelrc
!
- Guy Fieri 是你的英雄?
我们建议使用
babel.config.js
格式。Babel 自身也在使用。
babel.config.js
在项目的根目录(package.json
所在目录)下创建一个名为 babel.config.js
的文件,其中包含以下内容。
module.exports = function (api) {
api.cache(true);
const presets = [ ... ];
const plugins = [ ... ];
return {
presets,
plugins
};
}
查看 babel.config.js
文档 以了解更多配置选项。
.babelrc
在项目中创建一个名为 .babelrc
的文件并写入以下内容。
{
"presets": [...],
"plugins": [...]
}
查看 .babelrc 文档以了解更多配置选项。
package.json
或者可以在 package.json
中,使用 babel
属性来指定.babelrc
配置,如下所示:
{
"name": "my-package",
"version": "1.0.0",
"babel": {
"presets": [ ... ],
"plugins": [ ... ],
}
}
.babelrc.js
配置与 .babelrc
相同,但你可以使用 JavaScript 编写。
const presets = [ ... ];
const plugins = [ ... ];
module.exports = { presets, plugins };
你可以访问任何 Node.js 的 API,例如基于流程环境的动态配置:
const presets = [ ... ];
const plugins = [ ... ];
if (process.env["ENV"] === "prod") {
plugins.push(...);
}
module.exports = { presets, plugins };
@babel/cli
)
使用 CLI (babel --plugins @babel/plugin-transform-arrow-functions script.js
查看 babel-cli 文档以查看了解配置选项。
@babel/core
)
使用 API (require("@babel/core").transform("code", {
plugins: ["@babel/plugin-transform-arrow-functions"]
});
查阅 babel-core 文档 以了解更多配置选项。