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

在VSCode中使用import导入node-fetch报语法错误该如何解决?

问题解决方法

根本原因

你遇到的报错和node-fetch本身的配置无关,是Node.js对模块的默认判定规则导致的:

Node.js默认会将所有.js后缀的文件判定为CommonJS模块,只有满足以下两个条件之一时,才会将文件识别为ES模块,允许使用import语法:

  1. 你的项目根目录下的package.json顶层配置了"type": "module"
  2. 你的代码文件后缀改为.mjs

你之前查看的是node-fetch依赖包内部的package.json配置,该配置仅作用于node-fetch自身的源码文件,不会影响你自己项目里的代码判定。

可选解决方案

方案1:继续使用ES模块import语法(推荐,适配你当前安装的node-fetch 3.x版本)

  • 进入你的项目根目录(存放my_fetch_program.js、包含node_modules文件夹的目录),如果还没有package.json文件,先执行命令生成:
    npm init -y
    
  • 打开生成的package.json文件,在顶层JSON配置中添加一行:
    "type": "module"
    
  • 把你的导入语句改回标准写法即可,无需写node_modules全路径:
    import fetch from "node-fetch";
    

方案2:使用CommonJSrequire语法

node-fetch从3.x版本开始仅支持ES模块导入,如果你不想修改package.json配置,可以将node-fetch降级到2.x稳定版本:

  • 执行降级安装命令:
    npm install node-fetch@2
    
  • 改用CommonJS语法导入:
    const fetch = require('node-fetch');
    

补充说明

你使用的Node.js v14.17.0版本符合node-fetch 3.x的运行要求,无需升级Node.js版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 20:24:03