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

Jest报错:node.js SyntaxError: 无法在模块外使用import语句

解决Jest报错:node.js SyntaxError: Cannot use import statement outside a module

你的问题源于项目启用了ES模块(package.json中设置了"type": "module"),但Jest默认采用CommonJS模块系统,无法识别ES模块的import/export语法,从而触发报错。以下是具体解决步骤:

步骤1:安装Babel相关依赖

Jest需要通过Babel转译ES模块语法到Node支持的格式,执行命令安装依赖:

npm install --save-dev babel-jest @babel/core @babel/preset-env

步骤2:配置Babel

在项目根目录创建babel.config.json文件,添加配置:

{
  "presets": [["@babel/preset-env", {"targets": {"node": "current"}}]]
}

该配置会让Babel将ES模块代码转译为当前Node版本兼容的语法。

步骤3:配置Jest(可选)

在package.json中添加Jest专属配置,明确指定用Babel转译JS文件:

{
  // ...原有配置内容
  "jest": {
    "transform": {
      "^.+\\.js$": "babel-jest"
    }
  }
}

验证测试文件格式

确保你的测试文件使用ES模块语法导入目标函数,示例如下:

import { calculateTip } from './Language.js';

test('小费计算结果正确', () => {
  expect(calculateTip(100, 10)).toBe(111);
});

完成以上步骤后,重新运行npm test命令,即可正常执行测试。

内容的提问来源于stack exchange,提问作者Mr.Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 06:10:16