You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Jest测试ES6类时报import语法错误如何解决?

错误原因

你项目中使用了ES模块的import/export语法,但你安装的Jest 27版本默认使用CommonJS模块解析规则,未开启ES模块原生支持,因此无法识别import语句,触发语法报错。

解决方案

以下提供两种常用的可行方案,按需选择即可:

方案1:开启Jest原生ES模块支持(无需额外引入转译工具)

  • 修改package.json中的test脚本,替换为如下内容:
"scripts": {
  "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js"
}
  • 在package.json中新增Jest配置字段,关闭默认转译规则:
"jest": {
  "testEnvironment": "node",
  "transform": {}
}
  • 直接运行npm run test即可正常执行测试。

方案2:通过Babel转译ES模块(兼容性更好,适合多环境项目)

  • 首先安装所需开发依赖:
    npm install --save-dev @babel/core @babel/preset-env babel-jest
  • 在项目根目录新建babel.config.json配置文件,内容如下:
{
  "presets": [["@babel/preset-env", { "targets": { "node": "current" } }]]
}
  • (可选)在package.json中补充Jest配置,确认转译规则:
"jest": {
  "transform": {
    "^.+\\.js$": "babel-jest"
  }
}
  • 运行npm run test即可完成测试执行。
验证结果

配置完成后执行测试,你将看到如下通过提示:

PASS  tests/myClass.test.js
  ✓ Calculate (2 ms)

Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total

内容的提问来源于stack exchange,提问作者Dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 22:45:03