when i run enzyme example, i got "SyntaxError: /Users/a2014/Desktop/draghtml/test/test.js: Unexpected token (58:26)"

when i run enzyme example, i got "SyntaxError: /Users/a2014/Desktop/draghtml/test/test.js: Unexpected token (58:26)"

这是我的测试代码

import React from 'react';
import { expect } from 'chai';
import { mount, shallow } from 'enzyme';
import Welcome from '../script/src/entry';

describe('<Welcome />', () => {
  it('calls componentDidMount', () => {
    const wrapper = mount(<Welcome />);
    expect(Welcome.prototype.componentDidMount.calledOnce).to.equal(true);
  });
});
这是我的 package.json

  "scripts": {
    "cover": "istanbul cover _mocha -- --delay",
    "test": "mocha --compilers js:babel-core/register --require ./test/test.js",
    "dev": "webpack"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "babel-cli": "^6.24.1",
    "babel-core": "^6.25.0",
    "babel-loader": "^7.1.1",
    "babel-plugin-transform-runtime": "^6.23.0",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-react": "^6.24.1",
    "babel-preset-stage-0": "^6.24.1",
    "chai": "^4.1.1",
    "enzyme": "^2.9.1",
    "html-webpack-plugin": "^2.30.1",
    "isparta-loader": "^2.0.0",
    "istanbul": "^0.4.5",
    "jsx-loader": "^0.13.2",
    "karma": "^1.7.0",
    "karma-chrome-launcher": "^2.2.0",
    "karma-coverage": "^1.1.1",
    "karma-firefox-launcher": "^1.0.1",
    "karma-mocha": "^1.3.0",
    "karma-phantomjs-launcher": "^1.0.4",
    "karma-spec-reporter": "0.0.31",
    "karma-webpack": "^2.0.4",
    "mocha": "^3.5.0",
    "phantomjs-polyfill": "0.0.2",
    "react-addons-test-utils": "^15.6.0",
    "react-test-renderer": "^15.6.1",
    "should": "^11.2.1",
    "webpack": "^3.4.1"
  },
  "dependencies": {
    "babel-runtime": "^6.25.0",
    "react": "^15.6.1",
    "react-dom": "^15.6.1"
  }

当我运行"npm run test"时出现错误,如何解决?

SyntaxError: /Users/a2014/Desktop/draghtml/test/test.js: Unexpected token (58:26)

58: const wrapper = mount(<Welcome />);

好像没解决

您需要使用正确预设的 Babel 来解析您的组件的 JSX 语法,这在最新版本的 NodeJS、event 中不支持,并且将来可能不会支持。

一种选择是安装 React preset 并将其包含在 .babelrc 文件中:

{
  "presets": ["react"]
}