Discord.js V14 TypeError [ClientMissingIntents]问题求助
解决discord.js TypeError [ClientMissingIntents]错误的排查方案
1. 匹配discord.js版本的Intent写法
discord.js v13和v14的Intent调用方式完全不同,需对应你的版本调整:
- v14版本:使用
GatewayIntentBits枚举const { Client, GatewayIntentBits } = require('discord.js'); const client = new Client({ intents: [ GatewayIntentBits.Guilds, // 基础服务器权限 GatewayIntentBits.GuildMessages, // 服务器消息权限 GatewayIntentBits.MessageContent // 读取消息内容权限(需开发者门户开启) ] }); - v13版本:使用
Intents.FLAGSconst { Client, Intents } = require('discord.js'); const client = new Client({ intents: [ Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES, Intents.FLAGS.MESSAGE_CONTENT ] });
先查看你的package.json中discord.js的版本号,确保写法与版本匹配。
2. 开启Discord开发者门户的权限
即使代码中声明了Intent,若未在Discord开发者平台开启对应权限也会报错:
- 登录Discord开发者门户,进入你的机器人应用
- 切换到「Bot」页面,找到「Privileged Gateway Intents」区域
- 开启Message Content Intent(如果你的机器人需要读取消息内容),若用到成员或状态相关功能,同时开启Server Members Intent和Presence Intent
- 保存设置后重启机器人
3. 检查代码中的Intent拼写与完整性
- 确认Intent枚举值拼写正确,比如
GUILD_MESSAGES不要写成GUILD_MESSAGE,注意大小写 - 确保
intents数组中没有无效值或多余语法(比如末尾多余的逗号) - 若你的机器人需要音乐功能,需额外添加
GatewayIntentBits.GuildVoiceStates(v14)或Intents.FLAGS.GUILD_VOICE_STATES(v13)
4. 重新同步依赖
若你已更新Node.js和discord.js但问题依旧,尝试:
- 删除项目根目录下的
node_modules文件夹和package-lock.json文件 - 执行
npm install重新安装依赖 - 启动机器人测试
内容的提问来源于stack exchange,提问作者hikaue
相关产品推荐
相关产品推荐

