我正在学习 Babel 并想了解如何配置 Babel。我找到了两种配置 Babel 的方法:创建 babel.config.js 和 .babelrc 文件。在什么情况下,我们应该优先选择其中一个配置文件而不是另一个?
我正在学习 Babel 并想了解如何配置 Babel。我找到了两种配置 Babel 的方法:创建 babel.config.js 和 .babelrc 文件。在什么情况下,我们应该优先选择其中一个配置文件而不是另一个?
来自文档 https://babeljs.io/docs/en/config-files#project-wide-configuration
Babel有两种并行的配置文件格式,可以一起使用或独立使用。
Project-wide configuration
babel.config.json files, with the different extensions
File-relative configuration
.babelrc.json files, with the different extensions
package.json files with a "babel" key
如果您的问题涉及到文件扩展名(例如
.js
和.json
)与babel配置有关,则使用.js
会暴露出babel配置API。{{}}
https://babeljs.io/docs/en/config-files#config-function-api
记住,这会增加缓存的复杂性,大多数情况下最好使用.json
静态配置。
这两个配置似乎有所不同,
看看这个问题:
Jest transformIgnorePatterns 不起作用
有时候,某些功能只能与特定文件搭配使用,这非常模糊,而且肯定没有文档记录。(我可以确认上述问题存在,并且将配置文件重命名可以解决它)
此外,有时 babel 配置文件会被直接忽略,比如在 webpack 和 babel-loader 的情况下。你期望 babel 会加载项目根目录中找到的 .babelrc 文件,但事实证明它会忽略它并运行 Webpack 中提供的选项。
因此,不幸的是,答案有点模糊,而缺乏关于这些特性如何工作的文档并没有改善情况。
.babelrc
。{
"presets": [
[
"@babel/preset-env",
{
"targets": {
"node": "14"
}
}
]
],
"plugins": [
"add-module-exports",
[
"inline-dotenv",
{
"path": "./.env.production",
"unsafe": true
}
]
]
}
但是当我需要添加process.env
变量时,我将使用babel.config.js。
module.exports = function (api) {
api.cache(true);
const presets = [
[
'@babel/preset-env',
{
targets: {
node: '14',
},
},
],
];
const plugins = [
'add-module-exports',
[
'inline-dotenv',
{
path: `./.env.${process.env.NODE_ENV}`,
unsafe: true,
},
],
];
return {
presets,
plugins,
};
};
来自https://babeljs.io/docs/en/configuration
babel.config.json
适合您!
我们建议使用babel.config.json
格式。 Babel本身正在使用它。
babelrc.json
适合您!
.babelrc.json
的别名。 - user36339