# 自动重启
我们在开发项目时,修改代码后需要手动重启项目,这样比较麻烦,我们希望修改代码后自动重启项目,这样我们就可以专注于开发,而不需要手动重启项目。下面介绍几种自动重启项目的方法。
# nodemon
nodemon (opens new window) 是一个用于 Node.js 开发的工具,它能够监视文件变化并自动重启 Node.js 应用程序,从而提升开发效率。nodemon 会监视项目中的文件(如 .js、.json 等),当文件发生变化时,自动重启 Node.js 应用程序。
# 安装
npm install -g nodemon
# 启动
方法一:我们可以在 package.json 中添加启动命令, 然后执行 npm start 启动项目
"scripts": {
"start": "nodemon ./src/app.js"
}
方法二:我们也可以直接执行 nodemon ./src/app.js 启动项目
nodemon ./src/app.js
# 配置
我们也可以在 nodemon.json 中配置启动参数
{
"watch": ["src", "config"], // 监视 src 和 config 目录下的文件
"ext": "js,json,ts", // 监视 js、json 和 ts 文件
"ignore": ["tests/*", "public/*", "node_modules"], // 忽略 tests、public 和 node_modules 目录下的文件
"exec": "babel-node src/index.js", // 执行 babel-node 启动项目
"env": {
"NODE_ENV": "development", // 设置环境变量
"PORT": 3000 // 设置端口
},
"delay": 2, // 延迟重启时间
"verbose": true, // 显示详细日志
"restartable": "rs", // 重启命令
"execMap": {
"py": "python" // 执行 python 命令
},
"stdin": false, // 不使用标准输入
"colours": true, // 使用颜色
"runOnChangeOnly": false, // 只在文件变化时重启
"signal": "SIGUSR2", // 信号
"timeout": 1000 // 超时时间
}
# supervisor
supervisor (opens new window) 是一个用于 Node.js 开发的工具,它能够监视文件变化并自动重启 Node.js 应用程序,从而提升开发效率。supervisor 会监视项目中的文件(如 .js、.json 等),当文件发生变化时,自动重启 Node.js 应用程序。
# 安装
npm install -g supervisor
# 启动
方法一:我们可以在 package.json 中添加启动命令, 然后执行 npm start 启动项目
"scripts": {
"start": "supervisor ./src/app.js"
}
方法二:我们也可以直接执行 supervisor ./src/app.js 启动项目
supervisor ./src/app.js
# 常用配置参数
| 参数 | 说明 |
|---|---|
| -w 或 --watch | 指定要监视的目录或文件,用逗号分隔。 |
| -i 或 --ignore | 指定要忽略的目录或文件,用逗号分隔。 |
| -e 或 --extensions | 指定要监视的文件扩展名,用逗号分隔。 |
| -p 或 --poll-interval | 设置轮询间隔时间(单位:毫秒)。 |
| -n 或 --no-restart-on | 指定某些事件不触发重启(如 exit)。 |
| -x 或 --exec | 指定要执行的命令,默认为 node。 |
| -t 或 --timestamp | 在日志中显示时间戳。 |
| -q 或 --quiet | 减少日志输出。 |
| -k 或 --kill-timeout | 设置进程终止的超时时间(单位:毫秒)。 |
| --debug | 启用调试模式。 |
| --debug-brk | 启用调试模式,并在第一行代码处暂停。 |
| --harmony | 启用 ES6 的 Harmony 特性。 |
| --inspect | 启用 Node.js 的调试模式。 |
| --inspect-brk | 启用 Node.js 的调试模式,并在第一行代码处暂停。 |
示例:
supervisor -w src,config app.js