【问题标题】:Error of unexpected token import in react jest test反应笑话测试中意外令牌导入错误
【发布时间】:2018-09-06 12:19:05
【问题描述】:

我的jest.config.js 文件包含以下数据。

但是当我运行测试命令时,它给了我 SyntaxError 的错误:

意外的令牌导入

我在触发测试命令时遇到错误

const path = require('path');

module.exports = {
bail: true,
rootDir: process.cwd(),
testRegex: '/__tests__/.*\\.test\\.jsx?$',
transform: { '/__tests__/.*': path.resolve(__dirname, 'jest.transform.js'),},
verbose: true,
};

【问题讨论】:

  • 请分享您的jest.transform.js
  • const babelJest = require('babel-jest'); module.exports = babelJest.createTransformer({ presets: ['@babel/env'], plugins: [ ['@babel/transform-runtime', { regenerator: true }], ] });

标签: reactjs jestjs babel-jest


【解决方案1】:

这通常发生在 Babel 未处理您的测试和代码时。 Jest 是一个 Node.js 应用程序,Node.js 不理解 import 语法。

我看到您定义了自己的 transform 配置。 Jest documentation 表示,如果您为 transform 配置选项设置了一些值,它将覆盖默认值,并且 Jest 不会使用 babel-jest 预处理您的代码。 要解决此问题,您需要明确定义要通过 babel-jest 转换的文件:

transform: {
  '/__tests__/.*': path.resolve(__dirname, 'jest.transform.js'),
  "^.+\\.(js|jsx)$": "babel-jest",
},

【讨论】:

  • 我已经尝试过了,但仍然遇到同样的错误。
  • 下一个可能导致此类错误的地方是.babelrc。如果您通过modules: false 选项为babel-preset-env 或babel-preset-es-2015 关闭导入处理,它们也不会在测试中处理。您能否显示您的.babelrc 文件的内容?
【解决方案2】:

请安装"babel-jest": "^23.0.1", 并添加以下转换配置:

const path = require('path');
module.exports = {
bail: true,
rootDir: process.cwd(),
testRegex: '/__tests__/.*\\.test\\.jsx?$',
"transform": {
  "\\.js$": "<rootDir>/node_modules/babel-jest"
},
verbose: true,
};

如果问题仍然存在,请告诉我

【讨论】:

    猜你喜欢
    • 2017-11-12
    • 2018-03-15
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-08
    • 2019-04-30
    相关资源
    最近更新 更多