意外的令牌 = 在 Mocha 反应测试中

Unexpected token = in Mocha react tests

我用 Mocha 测试我的 React 组件,当我 运行 npm 测试时我得到了异常

SyntaxError: /Users/igunchenko/WorkProjects/Cloud_App/cloud.webapp/cloud.webapp.web/src/main/ui/app/DOM/pages/AdminPanel.js: Unexpected token (18:10)
16 | @connect()
17 | export class AdminPage extends Component {
18 |     state = {
   |           ^  

在 .babelrc 中,我描述了我的 React 应用程序的预设和插件:

{
  "presets": [ "es2015", "stage-2", "react"],
  "plugins": ["transform-decorators"]
}

但是,什么都没有改变。我在配置中丢失了什么?以及如何解决这个问题?

应该更像;

export default class AdminPage extends React.Component {
  constructor() {
    super();
    this.state = {something: ''};
  }

您只是应用了转换插件,而忽略了装饰器的语法。你可以的,

{
  "presets": ["es2015", "stage-2", "react"],
  "plugins": ["syntax-decorators", "transform-decorators"]
}

或者,在撰写本文时,"Class and Property Decorators" 处于第 1 阶段。https://github.com/tc39/proposals

所以你可以使用

{
  "presets": ["es2015", "stage-1", "react"]
}

您可以尝试以下方法。它帮助了我。 将其添加到“.babelrc”

  "presets": ["es2015", "react", "stage-0"],
  "plugins": ["transform-decorators-legacy"],

这对你的 "package.json" DevDepedencies

"babel-plugin-transform-decorators-legacy": "^1.3.4",
"babel-preset-stage-0": "^6.3.13",

然后使用 "npm i" 更新您的项目 希望对你有帮助。