node.js開(kāi)發(fā)中使用Node Supervisor實(shí)現(xiàn)監(jiān)測(cè)文件修改并自動(dòng)重啟應(yīng)用
在開(kāi)發(fā)或調(diào)試Node.js應(yīng)用程序的時(shí)候,當(dāng)你修改js文件后,總是要按下CTRL+C終止程序,然后再重新啟動(dòng),即使是修改一點(diǎn)小小的參數(shù),也總是要不斷地重復(fù)這幾個(gè)很煩人的操作。有沒(méi)有辦法做到當(dāng)文件修改之后,Node.js自動(dòng)重新啟動(dòng)(或重新加載文件)以節(jié)省時(shí)間呢?一開(kāi)始我是想到用grunt的watch模塊來(lái)監(jiān)控文件變化,但后來(lái)在網(wǎng)上一查,原來(lái)我們想到的,別人早已想到,并且已經(jīng)做得很好。Node Supervisor正是這樣一個(gè)可以實(shí)現(xiàn)這種需求的Node.js模塊。
根據(jù)Github上的說(shuō)明,Node Supervisor原本是用于服務(wù)器上Node.js應(yīng)用崩潰的時(shí)候,自己重新啟動(dòng)。當(dāng)然它也可以監(jiān)控你的項(xiàng)目的js(或CoffeeScript)文件變化,進(jìn)而重啟來(lái)方便我們調(diào)試應(yīng)用程序。
安裝方法(以全局模塊安裝):
npm install supervisor -g
假設(shè)你的Node.js程序主入口是app.js,那么只需要執(zhí)行以下命令,即可開(kāi)始監(jiān)控文件變化。
supervisor app.js
Supervisor還支持多種參數(shù),列舉如下:
//要監(jiān)控的文件夾或js文件,默認(rèn)為'.'
-w|--watch <watchItems>
//要忽略監(jiān)控的文件夾或js文件
-i|--ignore <ignoreItems>
//監(jiān)控文件變化的時(shí)間間隔(周期),默認(rèn)為Node.js內(nèi)置的時(shí)間
-p|--poll-interval <milliseconds>
//要監(jiān)控的文件擴(kuò)展名,默認(rèn)為'node|js'
-e|--extensions <extensions>
//要執(zhí)行的主應(yīng)用程序,默認(rèn)為'node'
-x|--exec <executable>
//開(kāi)啟debug模式(用--debug flag來(lái)啟動(dòng)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
實(shí)現(xiàn)同樣功能的類(lèi)似產(chǎn)品還有Run.js和Nodeman,這兩個(gè)我都沒(méi)用過(guò)。但是從文檔上來(lái)看,前者和Supervisor一樣都是極簡(jiǎn)的5分鐘就可以上手的那種,功能比Supervisor稍弱;后者的feature比較多,對(duì)應(yīng)的文檔就特別長(zhǎng),估計(jì)要研究透也得至少半個(gè)小時(shí)。選擇哪一個(gè),全看項(xiàng)目需求和個(gè)人喜好。
- 調(diào)試Node.JS的輔助工具(NodeWatcher)
- 我用的一些Node.js開(kāi)發(fā)工具、開(kāi)發(fā)包、框架等總結(jié)
- Windows8下搭建Node.js開(kāi)發(fā)環(huán)境教程
- 在Linux系統(tǒng)中搭建Node.js開(kāi)發(fā)環(huán)境的簡(jiǎn)單步驟講解
- windows8.1+iis8.5下安裝node.js開(kāi)發(fā)環(huán)境
- 詳解Windows下運(yùn)用Docker部署Node.js開(kāi)發(fā)環(huán)境
- Node.js開(kāi)發(fā)之訪問(wèn)Redis數(shù)據(jù)庫(kù)教程
- Node.js開(kāi)發(fā)指南中的簡(jiǎn)單實(shí)例(mysql版)
- Ubuntu 16.04 64位中搭建Node.js開(kāi)發(fā)環(huán)境教程
- Node.js開(kāi)發(fā)第三方微信公眾平臺(tái)
- 詳解Node.js開(kāi)發(fā)中的express-session
- linux環(huán)境安裝node.js開(kāi)發(fā)環(huán)境搭建圖文教程
- Node.js開(kāi)發(fā)者必須了解的4個(gè)JS要點(diǎn)
- Node.js開(kāi)發(fā)教程之基于OnceIO框架實(shí)現(xiàn)文件上傳和驗(yàn)證功能
- 如何利用node.js開(kāi)發(fā)一個(gè)生成逐幀動(dòng)畫(huà)的小工具
- Node.js開(kāi)發(fā)之套接字(socket)編程入門(mén)示例
- node.js開(kāi)發(fā)輔助工具nodemon安裝與配置詳解
相關(guān)文章
node.js中的fs.renameSync方法使用說(shuō)明
這篇文章主要介紹了node.js中的fs.renameSync方法使用說(shuō)明,本文介紹了fs.renameSync的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12node.js中的fs.appendFileSync方法使用說(shuō)明
這篇文章主要介紹了node.js中的fs.appendFileSync方法使用說(shuō)明,本文介紹了fs.appendFileSync方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12Windows 系統(tǒng)下安裝和部署Egret的開(kāi)發(fā)環(huán)境
Egret基于TypeScript開(kāi)發(fā)的,而TypeScript編譯工具tsc是基于Node.js 開(kāi)發(fā)的。所以在安裝過(guò)程中,我們先需要對(duì)于基礎(chǔ)支持工具進(jìn)行安裝。2014-07-07node.js中的url.resolve方法使用說(shuō)明
這篇文章主要介紹了node.js中的url.resolve方法使用說(shuō)明,本文介紹了url.resolve的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12node.js中的http.response.addTrailers方法使用說(shuō)明
這篇文章主要介紹了node.js中的http.response.addTrailers方法使用說(shuō)明,本文介紹了http.response.addTrailers的方法說(shuō)明、語(yǔ)法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12