运行测试时出现“意外令牌导入”错误

时间:2018-03-16 19:54:10

标签: reactjs jestjs eslint

当我运行测试时,我收到以下错误:

({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){import React from 'react';
                                                                                         ^^^^^^

SyntaxError: Unexpected token import

这是有道理的,因为所有“import React”或“import Enzyme”都被ESlint标记为错误。我不知道为什么。

这是我的.babelrc文件:

{
  "presets": [
    "react",
    "stage-2",
    ["env", {
      "test": {
        "presets": ["env", "react", "stage-2"],
        "plugins": ["transform-export-extensions"],
        "only": [
          "./**/*.js",
          "node_modules/jest-runtime"
        ]
      },
      "targets": {
        "browsers": ["last 2 versions", "safari >= 7"]
      },
      "modules": false
    }]
  ]
}

3 个答案:

答案 0 :(得分:2)

如果您正在使用babel 6和jest 24,则将被告知jest 24不再支持babel 6。

有两种解决方案

  1. 将您的应用升级到babel 7(由其开发人员积极维护)
  2. 如果您不想升级,请确保坚持玩笑23。

如果要使用jest 24,还有另一种解决方法。请使用版本23锁定的babel-jest

"dependencies": {
  "babel-core": "^6.26.3",
  "babel-jest": "^23.6.0",
  "babel-preset-env": "^1.7.0",
  "jest": "^24.0.0"
}

答案 1 :(得分:0)

Hello dev你可以试试吗,

安装babel-jest

在里面设置.babelrc

  "env": {
    "test": {
    "presets": ["es2015", "react"],
    "plugins": ["syntax-object-rest-spread", "transform-es2015-modules-commonjs"]      
  },

testing with jest

答案 2 :(得分:0)

安装babel:

npm i --save-dev babel-core babel-loader babel-jest babel-preset-env babel-preset-react jest-cli react-addons-test-utils

并放入.babelrc中:

{
    "presets": ["env", "react"]
}