在运行测试时出现"unexpected token import"错误。

9
当我运行测试时,出现以下错误:
({"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
    }]
  ]
}

你的代码正在使用 Babel 进行转译吗? - jmargolisvt
我想是这样的。我添加了我的 .babelrc 配置。 - Iván
2个回答

3
如果你正在使用babel 6和jest 24,那么请注意jest24已经不再支持babel 6。
有两个解决方案:
1. 将你的应用程序升级到babel 7。(由其开发者积极维护) 2. 如果你不想升级,请确保将jest版本固定为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"
}

0

你好开发者,能否尝试一下:

安装 babel-jest

在 .babelrc 文件中设置以下内容

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

使用Jest进行测试


你在 .babelrc 中设置了 env 属性吗? - Angel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接