Babel 6 react JSX 转换器 - 禁用严格

IT技术 javascript reactjs babeljs react-jsx
2021-05-01 12:07:07

问题

我正在使用 babel 6 进行 React JSX 转换。但是我没有使用 react 预设,我只使用了“transform-react-jsx”插件(并尝试了严格模式禁用选项),这是我的 .babelrc

{
  "plugins": [
    ["transform-react-jsx"]
  ],
  "sourceMaps": true,
  "strictMode": false
}

但是,我需要一个使用“with”(不受我控制)的第三方 javascript,它会发出以下错误:[SyntaxError: foo.js: 'with' in strict mode ..]

所以我需要禁用严格模式,这与这个问题相同,但是我没有使用 es6/es2015 的东西,只使用 jsx 转换。

babel 6 没有黑名单,我只指定了一个插件,所以我怀疑没有办法禁用。

2个回答

根据这一行,该strictMode选项确实被解析。

不过,我不明白您用于.babelrc的语法为什么是数组?

试试这个:

{
  "plugins": [
    ["transform-react-jsx"]
  ],
  "sourceMaps": true,
  "strictMode": false
}

transform-strict-mode仅用于包含严格模式而不是禁用它。所以将它设置为 false["transform-strict-mode", {"strict": false}]不会改变任何东西,在你的情况下最好删除这个插件然后包含它。但是,如果您在其他地方使用包含严格模式的插件或预设,请尝试使用es2015-loose

  1. 安装

    npm install --save-dev babel-preset-es2015-loose babel-preset-es2015

  2. 配置

    {"presets": ["es2015-loose"]}