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

开发Discord机器人用node-fetch出现ERR_REQUIRE_ESM错误如何解决?

报错原因

你安装的node-fetch v3及以上版本仅支持ES Module规范的导入方式,而你当前项目默认是CommonJS环境(package.json未配置"type": "module"),使用require()导入ESM规范的包就会触发该报错。

修复方案

你可以任选以下一种方案解决:

  • 方案1:降级node-fetch到v2版本(v2版本支持CommonJS的require导入,改动最小)
    执行命令:npm install node-fetch@2,安装完成后原有代码无需其他修改即可运行。
  • 方案2:使用动态import导入node-fetch,无需修改配置和降级版本
    将代码里的const fetch = require('node-fetch');替换为:
    const fetch = (await import('node-fetch')).default;
    
    因为你的execute函数本身就是异步函数,直接使用await导入不会有语法问题。
  • 方案3:将整个项目切换为ES Module规范
    在package.json中新增配置项"type": "module",之后将项目中所有require()导入改为import导入,module.exports导出改为export/export default导出即可。
额外注意事项

你的代码还存在大小写拼写错误:定义的变量是onlineInfo,后续判断却写成了onlineinfo,JS对大小写敏感,该问题会导致后续逻辑报错,需要修改为一致的命名。

内容的提问来源于stack exchange,提问作者N-Man

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 18:24:02