我正在为我的React Native应用程序使用Babel转换插件,但我希望它只适用于特定目录。
转换是允许我在方便的DSL中编码,但是如果暴露在常规的javascript中会遇到错误。它不是我自己编写的插件,所以如果不手动包含我自己的分支,我无法修改它的行为。相反,我想简单地在.babelrc
中指定应该或不应该启用它来转换AST。
有办法做到这一点吗?比如Babel自己处理的插件选项?
{
"presets": ["es2015"],
"plugins": [
["some_plugin", {
include: ["./plugin_specific_code"]
}]
]
}
答案 0 :(得分:1)
我不确定.bablerc
(尝试查看它是否有效)但您可以在任何给定目录中创建package.json
并覆盖babel的主package.json设置,如下所示:
<强> /package.json 强>
我只希望我的正常版本的flow
预设由我的主package.json定义。
{
...
"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"
]
}
}