Webpack / Babel / React - “Uncaught SyntaxError:Unexpected token:”

时间:2016-03-13 02:36:33

标签: javascript reactjs webpack babeljs

我有一个运行的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 个答案:

答案 0 :(得分:5)

我正在使用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')
});