如何实现nodemon重启时清除控制台且显示应用崩溃错误信息
实现nodemon代码变更重启清控制台、崩溃保留错误信息的方案
方法一:利用nodemon配置文件的事件钩子
创建或修改项目根目录下的nodemon.json配置文件,添加如下内容:
{ "events": { "restart": "clear || cls" } }
clear适用于Linux/macOS系统,cls适用于Windows系统,用||连接可实现跨平台兼容——当前系统不支持第一个命令时自动执行第二个。
此配置会在nodemon检测到代码变更触发重启时自动清屏;而应用崩溃时,nodemon不会触发restart事件,错误信息会保留在控制台中。
方法二:自定义启动脚本(package.json)
若不想单独维护配置文件,可直接在package.json的scripts字段中指定重启时的清屏命令:
{ "scripts": { "dev": "nodemon --on-restart 'clear || cls' app.js" } }
将app.js替换为你的项目入口文件即可。
方法三:精准区分重启原因(自定义钩子脚本)
如果需要严格区分「代码变更重启」和「崩溃重启」的行为(避免崩溃后重启时清屏),可以编写自定义钩子脚本:
- 在项目根目录创建
nodemon-hook.js文件:
const { execSync } = require('child_process'); // 通过nodemon传递的环境变量判断重启原因 if (process.env.NODEMON_RESTART_REASON === 'change') { // 仅在代码文件变更触发重启时清屏 execSync(process.platform === 'win32' ? 'cls' : 'clear'); }
- 修改
nodemon.json配置,引入该钩子:
{ "events": { "restart": "node nodemon-hook.js" } }
nodemon会将重启原因通过NODEMON_RESTART_REASON环境变量传递给钩子脚本:当原因是change时执行清屏,原因是crash(应用崩溃)时则跳过清屏,完整保留错误信息。
内容的提问来源于stack exchange,提问作者Joy
相关产品推荐
相关产品推荐

