supervisor是nodejs下面的一个热部署工具包,它会监听你nodejs应用程序(*.js文件)的代码变化,实时重启你的nodejs服务,可以大大提升代码开发阶段的效率。

安装

npm install -g supervisor

安装到全局,可以方便的在终端直接使用。

使用

我已在本地通过express-generator脚手架初始化了一个express项目(my-express-app),进入nodejs项目目录

supervisor bin/www

尝试修改项目下的app.js文件,修改保存后终端会出现下面的代码片段

...
crashing child
Starting child process with 'node bin/www'
...

则表示该nodejs项目已经完成一次重启,你修改后的nodejs程序代码会重新部署启动,这样就避免了我们每次修改完代码后,需要手动ctrl+c终止服务进程,然后再npm start启动服务进程的繁琐过程。

参数说明

执行下面的命令

supervisor -h

可以得到详细使用说明

参数 说明
-w|–watch <watchItems> 逗号分隔的要监听的文件夹或js文件列表,当js文件发生更改时重新加载程序,默认为 ‘.’
-i|–ignore <ignoreItems> 要忽略监听的文件夹列表
–ignore-symlinks 忽略文件链接符
-p|–poll-interval <milliseconds> 监控文件变化的时间间隔(周期),默认为nodejs内置时间
-e|–extensions <extensions> 要监控的文件扩展名,默认为’node,js’
-x|–exec <executable> 要执行的主应用程序,默认为’node’
–debug[=port] 开启debug模式
–debug-brk[=port] 开启debug-brk模式
–harmony 开启harmony模式
–inspect 开启inspect模式
–harmony_default_parameters 开启harmony_default_parameters模式
-n|–no-restart-on error|exit
-t|–non-interactive 禁用终端交互,选择后supervisor将不会监听stdin
-k|–instant-kill  使用SIGKEL(-9)来终止子进程
–force-watch 用fs.watch代替fs.watchFile
-s|–timestamp 每次运行后的日志时间戳
-h|–help|-? 显示帮助信息
-q|–quiet 安静模式,禁止显示调试信息
-V|–verbose 显示额外的调试信息