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

JEST导入node-fetch报SyntaxError: Unexpected identifier错误如何解决

报错原因

你安装的node-fetch@3.x是纯ESM(ECMAScript Module)版本,仅支持import语法导入,不兼容CommonJS规范。同时你使用的Node v11.15.0对ESM原生支持度极低,且Jest默认不会转译node_modules目录下的依赖包,导致node-fetch内部的import语法无法被识别,触发语法错误。

解决方案

方案1:降级node-fetch到v2版本(最推荐,适配你当前的环境)

node-fetch@2.x版本同时兼容CommonJS和ESM规范,无需修改其他配置即可直接使用,操作步骤如下:

  1. 卸载当前的3.x版本
npm uninstall node-fetch
  1. 安装2.x最新稳定版
npm install node-fetch@2

安装完成后原有导入代码无需修改,直接运行即可。

方案2:保留node-fetch@3.x(需要调整环境和配置)

如果你必须使用3.x版本的新特性,需要做以下修改:

  • 首先将Node版本升级至12.20.0以上,这是node-fetch@3.x要求的最低支持Node版本
  • 在项目package.json中新增配置项"type": "module",声明项目默认使用ES模块规范
  • 修改Jest配置,新增transformIgnorePatterns配置,让Jest转译node-fetch:
// jest.config.js 对应新增配置
module.exports = {
  // 其他原有配置保留
  transformIgnorePatterns: ["/node_modules/(?!node-fetch)/"]
}
  • 调整Babel预设配置,确保支持ES模块转译

内容的提问来源于stack exchange,提问作者José Carlos

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 15:42:04