Webpack/Babel/React - “未捕获的语法错误:意外的令牌:”

IT技术 javascript reactjs webpack babeljs
2021-05-17 05:27:22

我有一个 webpack-dev-server 正在运行,它可以编译并提供一些 Babel/React 代码。我已经把它提供给编译client.js过的localhost:3001.

但是当我尝试将脚本包含在我的 HTML 中时,我在 Chrome 的开发人员控制台中收到以下错误:

routerWarning.js:19 Uncaught SyntaxError: Unexpected token :

该行属于 react-router 并包含以下代码:

process.env.NODE_ENV !== 'production' ? _warning2['default'].apply(undefined, [falseToWarn, message].concat(args)) : undefined;

首先,我看不出这行代码如何导致语法错误。其次,我不明白它是如何进入的,因为对我来说这看起来像是一段编译(babelified)代码。最后,我不知道如何解决它!:(

任何帮助将不胜感激。

1个回答

我使用 webpack 的 DefinePlugin 设置process.env.BABEL_ENV如下:

new DefinePlugin({
  'process.env': {
    BABEL_ENV: JSON.stringify('client')
  }
});

这导致 webpack 将process.env代码中的所有实例替换{"BABEL_ENV":"client"}. SyntaxError 是在这部分引起的,而不是在三元表达式中引起的。

我通过如下设置修复了它process.env.BABEL_ENV

new DefinePlugin({
  'process.env.BABEL_ENV': JSON.stringify('client')
});