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

discord.js开发Discord机器人报错Cannot find module 'node:events'求解

报错原因

Cannot find module 'node:events' 报错的核心原因是当前运行项目的Node.js环境不支持node:前缀的核心模块导入语法,该语法仅在Node.js v16.0.0及以上版本可用,而你使用的discord.js v13+要求最低Node.js版本为v16.6.0。你虽然全局升级了Node.js,但实际项目运行时调用的Node版本仍未达到要求是此类问题的最常见诱因。

排查与解决步骤
  • 验证实际运行的Node.js版本
    在项目代码的第一行添加如下代码:
console.log("当前运行Node版本:", process.version)

运行项目查看输出,如果版本号低于v16.6.0,按运行环境调整版本:

  • 本地开发环境:如果使用nvm等版本管理工具,执行node -v查看当前终端激活的版本,若版本较低执行nvm install 18 --lts安装长期支持版,再执行nvm use 18切换即可。
  • Replit等在线IDE环境:默认Node版本通常为v14及以下,需手动指定运行版本,以Replit为例,在项目根目录创建.replit文件,添加如下配置即可:
    run = "npx node@18 index.js"
    
  • 重新安装依赖
    确认Node版本符合要求后,删除项目根目录下的node_modules文件夹、package-lock.json/yarn.lock/pnpm-lock.yaml锁文件,重新执行npm install安装依赖,清除旧缓存导致的异常。
  • 修正discord.js兼容代码
    你当前使用的是discord.js v12的语法,v13及以上版本有两处强制修改要求,否则解决模块问题后仍会报错:
  1. 初始化Client实例时必须指定网关意图
  2. 原message事件已废弃,替换为messageCreate事件
    修正后的参考代码如下:
const Discord = require("discord.js")
const client = new Discord.Client({
  intents: [
    Discord.GatewayIntentBits.Guilds,
    Discord.GatewayIntentBits.GuildMessages,
    Discord.GatewayIntentBits.MessageContent
  ]
})

client.on("ready", () => {
  console.log('Logged in as', client.user.tag)
})

client.on("messageCreate", msg => {
  if (msg.content == "ping") {
    msg.reply("pong");
  }
})

client.login(process.env.TOKEN)

注:如果你使用的是discord.js v13版本,将上面的GatewayIntentBits替换为Intents.FLAGS即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:45:02