Webpack / React.js 中的语法错误 React 中的意外令牌 =

Posted

技术标签:

【中文标题】Webpack / React.js 中的语法错误 React 中的意外令牌 =【英文标题】:SyntaxError in Webpack / React.js Unexpected token = in React 【发布时间】:2018-03-13 23:05:10 【问题描述】:

在我的一个 .js 文件中,我从 Webpack 收到以下错误:

  4 | export default function(ComposedComponent) 
  5 |   class Authentication extends Component 
> 6 |     static contextTypes = 
    |                         ^
  7 |       router: React.PropTypes.object
  8 |     
  9 | 

这些是我的开发依赖项:

  "devDependencies": 
    "babel-core": "^6.17.0",
    "babel-loader": "^6.2.0",
    "babel-plugin-transform-object-rest-spread": "^6.26.0",
    "babel-preset-env": "^1.6.0",
    "babel-preset-react": "^6.16.0",
    "babel-preset-stage-3": "^6.24.1",
    "css-loader": "^0.26.1",
    "file-loader": "^1.1.4",
    "html-webpack-plugin": "^2.30.1",
    "image-webpack-loader": "^3.4.2",
    "rimraf": "^2.6.2",
    "style-loader": "^0.13.1",
    "url-loader": "^0.5.9",
    "webpack": "2.2.0-rc.0",
    "webpack-dev-server": "^2.2.0-rc.0"
  

这是我的 Webpack 配置:


  "presets": ["env", "react", "stage-3"],
  "plugins": ["transform-object-rest-spread"]

谁能告诉我缺少哪个插件或包? 谢谢!

【问题讨论】:

请查看this 和this。您只需要添加正确的 babel 预设即可使用静态类属性。 【参考方案1】:

什么都没有,只是语法不正确。

静态方法应该是(顾名思义)函数。

试试:

class Authentication extends Component 
   ...


Authentication.contextTypes = 
    router: React.PropTypes.object

【讨论】:

同样的问题...现在,它指向 . Authentication.contextTypes 之间。有趣的是,当我下载教程时,旧的设置没问题,只是不能与我的新 Webpack 转译器一起使用。 Longshot 但尝试babel-preset-es2015 并将es2015 添加到您的预设中 @Daniel 是对的。您只需要添加正确的预设。查看我的评论以获取链接。 感谢您的努力,但我只是不断收到错误消息。这次是 Uncaught Error: _registerComponent(...): Target container is not a DOM element - 即使脚本位于文档底部。 :(【参考方案2】:

类属性目前是第 2 阶段的提案,因此它不包含在 babel-preset-env 中。您可以:

使用.babelrc 仅包含此特定转换:

“插件”:[“转换类属性”]

包括所有第 2 阶段的提案:

“预设”:[“env”,“react”,“stage-2”]

在添加所有stage-2 提案之前请考虑风险:https://babeljs.io/docs/plugins/preset-stage-2/

【讨论】:

以上是关于Webpack / React.js 中的语法错误 React 中的意外令牌 =的主要内容,如果未能解决你的问题,请参考以下文章

Webpack/React.js:你可能需要一个额外的加载器来处理这些加载器的结果

如何使用 webpack 从 React JS 中的外部 JS 文件导入对象

Node SASS 的 React JS Webpack 失败

React Js 项目未运行 Webpack 本地服务器

React.js 和 webpack - 为啥它不允许 var、let、const?

无法调用 React JS webpack-dev-server api