javascript - 将 Babel 插件应用到特定目录

标签 javascript babeljs

我正在为我的 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/

相关文章:

javascript - 打开文档时在 PDF 中运行 JavaScript

react-native - 意外的导入 token - 使用 Jest 测试 React Native

javascript - 使用nodejs和post方法将数组保存到文件

javascript - jquery .ready() 等同于 d3js?

javascript - JS Regex .replace,我缺少什么?

javascript - 为什么要在 webpack 配置文件中添加 babel-loader?

javascript - webpack babel es7异步函数报错 "TypeError: (0 , _typeof3.default) is not a function"

c# - 是否有一些库可以帮助我在 C# 中编写 Javascript 代码?

javascript - 运行 Gulp 任务时 Gulp 抛出 "is read-only while parsing file"错误

javascript - ES6 和 sequelize-cli