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

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

  

若是你使用的是Linux 或Mac,直接鍵入上面的命令極可能會有權限錯誤。緣由是npm 須要把supervisor 安裝到系統目錄,須要管理員受權,
可使用 sudo npm install -g  supervisor 命令來安裝。    
 

假設你的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
相關文章
相關標籤/搜索