Babel 是可以配置的。很多其他的工具都有着类似地配置:ESLint(.eslintrc
),Prettier(.prettierrc
)。
查看所有的 Babel API 选项。
你的应用场景是什么?
- 你希望以编程方式创建配置?
- 你想编译
node_modules
?
那么使用babel.config.js
吧。
- 你的静态配置只应用于简单的单个包?
那么使用.babelrc
吧。
babel.config.js
在你的项目根目录下创建一个名为babel.config.js
的文件,包含以下内容:1
2
3
4
5
6
7
8
9module.exports = function () {
const presets = [ ... ];
const plugins = [ ... ];
return {
presets,
plugins
};
}
查看 babel.config.js 文档浏览更多配置选项。
.babelrc
在项目中创建一个名为.babelrc
的文件,包含以下内容:1
2
3
4{
"presets": [...],
"plugins": [...]
}
查看 .babelrc 文档浏览更多配置选项。
package.json
你也可以在package.json
文件中指定.babelrc
配置:1
2
3
4
5
6
7
8{
"name": "my-package",
"version": "1.0.0",
"babel": {
"presets": [ ... ],
"plugins": [ ... ],
}
}
.babelrc.js
除了你可以使用 JavaScript 编写之外,其他配置和.babelrc
一样:1
2
3
4const presets = [ ... ];
const plugins = [ ... ];
module.exports = { presets, plugins };
你可以访问任何 Node.js 的 API ,例如基于进程的环境进行动态配置:1
2
3
4
5
6
7
8const presets = [ ... ];
const plugins = [ ... ];
if (process.env["ENV"] === "prod") {
plugins.push(...);
}
module.exports = { presets, plugins };
使用 CLI(@babel/cli
)
1 | babel --plugins @babel/plugin-transform-arrow-functions script.js |
查看 babel-cli 文档浏览更多配置选项。
使用 API(@babel/core
)
1 | require("@babel/core").transform("code", { |
查看 babel-core 文档浏览更多配置选项。