Babel 配置

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
9
module.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
4
const presets = [ ... ];
const plugins = [ ... ];

module.exports = { presets, plugins };

你可以访问任何 Node.js 的 API ,例如基于进程的环境进行动态配置:

1
2
3
4
5
6
7
8
const 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
2
3
require("@babel/core").transform("code", {
plugins: ["@babel/plugin-transform-arrow-functions"]
});

查看 babel-core 文档浏览更多配置选项。

-------------本文结束感谢您的阅读-------------
0%