在開發或調試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
//監控檔案變化的時間間隔(週期),預設為Node.js內建的時間
-p|--poll-interval
//要監控的檔案副檔名,預設為'node|js'
-e|--extensions
//要執行的主應用程序,預設為'node'
-x|--exec
//開啟debug模式(用--debug flag來啟動node)
--debug
//安靜模式,不顯示DEBUG資訊
-q|--quiet
範例:
實現同樣功能的類似產品還有Run.js和Nodeman,這兩個我都沒用過。但從文件來看,前者和Supervisor一樣都是極簡的5分鐘就可以上手的那種,功能比Supervisor稍弱;後者的feature比較多,對應的文檔就特別長,估計要研究透也得至少半小時。選擇哪一個,全看專案需求和個人喜好。