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

在Replit上使用Discord.JS开发首个机器人时报Cannot find module 'node:events'错误

报错原因

Cannot find module 'node:events' 错误本质是Discord.JS版本与Node.js运行环境版本不兼容:

  • Discord.JS v14及以上版本要求Node.js最低版本为16.9.0,node:前缀的内置模块导入语法是Node.js 16.x版本新增的特性,你当前Replit环境的Node.js版本低于16.9.0,无法识别该语法,因此抛出模块找不到的错误。
  • 额外说明:你代码中使用的client.on("message")事件是Discord.JS v12及更早版本的专属API,v13之后该事件已被废弃,替换为messageCreate事件,后续版本适配需要注意该变更。
解决方法

方案1:升级Node.js版本(推荐,适配新版Discord.JS功能)

  • 打开项目根目录下的package.json文件,添加如下配置指定Node.js运行版本:
"engines": {
  "node": ">=16.9.0"
}
  • 修改代码适配新版Discord.JS的语法要求(新版需要手动声明网关意图才能正常接收消息):
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}!`)
})

// 将废弃的message事件替换为messageCreate
client.on("messageCreate", msg => {
  if (msg.content === "ping") {
    msg.reply("pong");
  }
})

client.login(process.env.TOKEN)
  • 操作完成后需要到Discord开发者平台的Bot设置页,开启Message Content Intent开关,否则无法获取到用户发送的消息内容。

方案2:降级Discord.JS版本(适配现有运行环境,匹配旧教程语法)

如果不想调整Node.js版本,可以直接安装和旧教程匹配的Discord.JS v12版本:

  • 在Replit的Shell终端执行安装命令:
    npm install discord.js@12.5.3
  • 安装完成后直接运行你最初编写的代码即可正常启动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 06:18:05