在開發或調試Node.js應用程序的時候,當你修改js文件後,總是要按下CTRL+C終止程序,然後再重新啟動,即使是修改一點小小的參數,也總是要不斷地重復這幾個很煩人的操作。有沒有辦法做到當文件修改之後,Node.js自動重新啟動(或重新加載文件)以節省時間呢?一開始我是想到用grunt的watch模塊來監控文件變化,但後來在網上一查,原來我們想到的,別人早已想到,並且已經做得很好。Node Supervisor正是這樣一個可以實現這種需求的Node.js模塊。
根據Github上的說明,Node Supervisor原本是用於服務器上Node.js應用崩潰的時候,自己重新啟動。當然它也可以監控你的項目的js(或CoffeeScript)文件變化,進而重啟來方便我們調試應用程序。
安裝方法(以全局模塊安裝):
代碼如下:
假設你的Node.js程序主入口是app.js,那麼只需要執行以下命令,即可開始監控文件變化。
代碼如下:
Supervisor還支持多種參數,列舉如下:
復制代碼 代碼如下:
//要忽略監控的文件夾或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
例子:
代碼如下:
實現同樣功能的類似產品還有Run.js和Nodeman,這兩個我都沒用過。但是從文檔上來看,前者和Supervisor一樣都是極簡的5分鐘就可以上手的那種,功能比Supervisor稍弱;後者的feature比較多,對應的文檔就特別長,估計要研究透也得至少半個小時。選擇哪一個,全看項目需求和個人喜好。