在開發或調試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