node.js開發中使用Node Supervisor實現監測文件修改並自動重啟應用提高nodejs調試效率


在開發或調試Node.js應用程序的時候,當你修改js文件后,總是要按下CTRL+C終止程序,然后再重新啟動,即使是修改一點小小的參數,也 總是要不斷地重復這幾個很煩人的操作。這是因為Node.js 只有在第一次引用到某部份時才會去解析腳 本文件,以后都會直接訪問內存,避免重復載入。

Node.js的這種設計雖然有利於提高性能,卻不利於開發調試,因為我們在開發過程中總是希望修改后立即看到效果,而不是每次都要終止進程並重啟。

有沒有辦法做到當文件修改之后,Node.js自動重新啟動(或重新加載文件)以節省時間呢?一開始我是想到用 grunt的watch模塊來監控文件變化,但后來在網上一查,原來我們想到的,別人早已想到,並且已經做得很好。Node Supervisor正是這樣一個可以實現這種需求的Node.js模塊。

supervisor 可以幫助你實現這個功能,它會監視你對代碼的改動,並自動重啟Node.js。 根據Github上的說明,Node Supervisor原本是用於服務器上Node.js應用崩潰的時候,自己重新啟動。當然它也可以監控你的項目的js(或CoffeeScript)文件變化,進而重啟來方便我們調試應用程序。


 

安裝方法(以全局模塊安裝):

 代碼如下:

npm install supervisor -g

  

如果你使用的是Linux 或Mac,直接鍵入上面的命令很可能會有權限錯誤。原因是npm 需要把supervisor 安裝到系統目錄,需要管理員授權,
可以使用 sudo npm install -g  supervisor 命令來安裝。    
 

假設你的Node.js程序主入口是app.js,那么只需要執行以下命令,即可開始監控文件變化。

 代碼如下:

supervisor app.js

 

Supervisor還支持多種參數,列舉如下:

 代碼如下:

//要監控的文件夾或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

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM