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

使用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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 16:02:48