在开发或调试Node.js应用程序的时候,当你修改js文件后,老是要按下CTRL+C终止程序,而后再从新启动,即便是修改一点小小的参数,也 老是要不断地重复这几个很烦人的操做。这是由于Node.js 只有在第一次引用到某部份时才会去解析脚 本文件,之后都会直接访问内存,避免重复载入。javascript
Node.js的这种设计虽然有利于提升性能,却不利于开发调试,由于咱们在开发过程当中老是但愿修改后当即看到效果,而不是每次都要终止进程并重启。java
有没有办法作到当文件修改以后,Node.js自动从新启动(或从新加载文件)以节省时间呢?一开始我是想到用 grunt的watch模块来监控文件变化,但后来在网上一查,原来咱们想到的,别人早已想到,而且已经作得很好。Node Supervisor正是这样一个能够实现这种需求的Node.js模块。node
supervisor 能够帮助你实现这个功能,它会监视你对代码的改动,并自动重启Node.js。 根据Github上的说明,Node Supervisor本来是用于服务器上Node.js应用崩溃的时候,本身从新启动。固然它也能够监控你的项目的js(或CoffeeScript)文件变化,进而重启来方便咱们调试应用程序。python
安装方法(以全局模块安装):git
代码以下:github
npm install supervisor -g
假设你的Node.js程序主入口是app.js,那么只须要执行如下命令,便可开始监控文件变化。npm
代码以下:服务器
supervisor app.js
Supervisor还支持多种参数,列举以下:app
代码以下:grunt
//要监控的文件夹或js文件,默认为'.' -w|--watch <watchItems> //要忽略监控的文件夹或js文件 -i|--ignore <ignoreItems> //监控文件变化的时间间隔(周期),默认为Node.js内置的时间 -p|--poll-interval <milliseconds> //要监控的文件扩展名,默认为'node|js' -e|--extensions <extensions> //要执行的主应用程序,默认为'node' -x|--exec <executable> //开启debug模式(用--debug flag来启动node) --debug //安静模式,不显示DEBUG信息 -q|--quiet
例子:
代码以下:
supervisor myapp.js supervisor -w py_scripts -e 'py' -x python myapp.py supervisor -w lib, server.js, config.js, server.js