开发Discord机器人运行时client标识符重复声明报错如何解决?
Discord机器人运行报错解决方案
错误原因
- 核心报错
SyntaxError: Identifier 'client' has already been declared是因为你在main.js中两次使用const关键字声明同名变量client,const声明的变量不允许重复定义,直接触发语法错误 - 额外问题:
package.json中的main字段多写了多余的等号,属于配置错误
修复步骤
1. 修正package.json配置
将package.json中的"main": "= main.js"修改为"main": "main.js",删除多余的等号即可,修正后的完整配置如下:
{ "name": "gerda", "version": "1.0.0", "description": "Gerda", "main": "main.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "Jordy", "license": "ISC", "dependencies": { "discord.js": "^13.1.0" } }
2. 修正main.js重复声明问题
删除main.js中冗余的重复引入和重复client声明代码,只保留一次声明即可,修正后的完整代码如下:
const { Client, Intents } = require('discord.js'); // 仅声明一次client,显式传入discord.js v13要求的intent参数 const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES] }); client.once('ready', () => { console.log('Gerda is er'); }); // 填入你的实际机器人Token即可 client.login("你的机器人Token");
验证修复
修改完成后重新在CMD执行node main.js,控制台输出Gerda is er即为运行成功。
内容的提问来源于stack exchange,提问作者Jordy
相关产品推荐
相关产品推荐

