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

Node.js v10引入node-fetch报SyntaxError: Unexpected identifier求助

错误产生原因
  • 你安装的是node-fetch@3.x及以上版本,该版本系列完全使用ES Module规范开发,仅支持import语法导入,不再兼容CommonJS的require()导入方式
  • 你当前使用的Node v10.19.0对ES Module规范的支持度极低,默认无法识别源码中的import关键字,直接触发语法错误
  • 额外安装的http包是冗余操作,http是Node内置核心模块,无需单独通过npm安装
修复方案

方案1:适配现有Node版本(无需升级Node)

直接安装支持CommonJS规范的node-fetch@2.x版本即可,操作步骤如下:

  1. 卸载当前安装的高版本node-fetch
npm uninstall node-fetch
  1. 安装2.x分支的最新稳定版
npm install node-fetch@2
  1. 卸载冗余的http包(可选,避免依赖冲突)
npm uninstall http

修改完成后原有代码无需调整,直接运行即可正常启动。

方案2:升级Node适配最新版node-fetch

如果你需要使用node-fetch的新特性,可以按如下操作适配:

  1. 升级Node版本到14.x及以上的LTS长期支持版本
  2. 在项目的package.json中添加配置项,声明项目使用ES Module规范:
{
  "type": "module"
}
  1. 将原有代码的CommonJS导入语法替换为ES Module语法:
import express from "express";
import fetch from 'node-fetch';
const app = express();
const PORT = process.env.PORT = 8787;
let router = express.Router();

内容的提问来源于stack exchange,提问作者A. Vreeswijk

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 01:15:03