我正在为我的 React Native 应用程序使用 Babel 转换插件,但我希望它仅适用于特定目录。
转换是为了让我能够使用方便的 DSL 进行编码,但如果暴露于常规的 javascript,则会遇到错误。它不是我自己编写的插件,因此如果不手动包含我自己的分支,我无法修改它的行为。相反,我想简单地在 .babelrc 中指定应该或不应该启用它来转换 AST 的位置。
有办法做到这一点吗?比如 Babel 本身处理的插件选项?
{
"presets": ["es2015"],
"plugins": [
["some_plugin", {
include: ["./plugin_specific_code"]
}]
]
}
最佳答案
我不确定 .bablerc
(尝试看看它是否有效),但你绝对可以在任何给定目录中创建一个 package.json
并覆盖 main babel的package.json设置如下:
/package.json
我只想为我的主 package.json 定义的正常构建预设 flow
。
{
...
"babel": {
"presets": [
"flow"
],
"plugins": [
"transform-es2015-modules-commonjs",
"transform-object-rest-spread"
],
"env": {
"test": {
"plugins": [
"istanbul"
]
}
}
},
"nyc": {
"require": [
"babel-register"
],
"reporter": [
"lcov",
"text"
],
"sourceMap": false,
"instrument": false
}
}
/tests/package.json
对于单元/集成测试,我需要更多预设,以便我的代码转换为 mocha/nyc/instanbul 可以理解的格式,因此我在该目录中的 package.json 中定义它们。
{
"babel": {
"presets": [
"es2017",
"flow",
"stage-0"
],
"plugins": [
"transform-es2015-modules-commonjs",
"transform-object-rest-spread"
]
}
}
关于javascript - 将 Babel 插件应用到特定目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45000492/