使用discord.js开发Discord机器人时Nodemon修改代码后不重启求助
解决Discord.js机器人nodemon不自动重启的问题
针对你遇到的nodemon检测到文件变化但机器人未自动重启的问题,可尝试以下几种解决方案:
1. 确保Discord客户端正确退出
Discord.js的Client会维持长连接,nodemon重启时旧进程可能未完全终止,导致新进程无法正常启动。在index.js中添加信号监听,保证进程退出时客户端正确销毁:
const { Client, IntentsBitField } = require("discord.js"); const client = new Client({ intents: [ IntentsBitField.Flags.Guilds, IntentsBitField.Flags.GuildMembers, IntentsBitField.Flags.GuildMessages, IntentsBitField.Flags.MessageContent, ], }); // 新增:监听SIGINT信号,确保客户端正确退出 process.on('SIGINT', async () => { console.info('正在关闭客户端连接...'); await client.destroy(); process.exit(0); }); client.on('ready', (c) => { console.info(`✔ ${c.user.tag} is online.`); }); client.on('messageCreate', (msg) => { if (msg.content == 'Hello!') msg.reply('Hi!'); }); client.login("my key");
2. 明确指定nodemon监听目录
强制nodemon只监听src目录下的文件变化,避免无关文件干扰,运行命令:
nodemon --watch src src/index.js
3. 调整nodemon的文件检测延迟
如果是文件系统(如WSL、共享文件夹)导致的检测延迟,增加延迟参数给nodemon足够时间识别变化:
nodemon --delay 1000ms src/index.js
4. 检查nodemon配置冲突
查看项目中是否存在nodemon.json配置文件,或package.json中的nodemonConfig字段,确认watch路径是否正确。若有错误配置,修改为指向src目录:
// nodemon.json示例 { "watch": ["src"], "ext": "js,mjs,json" }
5. 升级nodemon到最新版本
你当前使用的nodemon 2.0.22存在已知的进程重启bug,升级到最新版本可解决问题:
npm install -g nodemon@latest
内容的提问来源于stack exchange,提问作者McWhopper
相关产品推荐
相关产品推荐

