javascript
NodeJS”热部署“代码,实现动态调试
開(kāi)發(fā)中遇到的問(wèn)題???
? 如果你有 PHP 開(kāi)發(fā)經(jīng)驗(yàn),會(huì)習(xí)慣在修改 PHP 腳本后直接刷新瀏覽器以觀察結(jié)果,而你在開(kāi)發(fā) Node.js 實(shí)現(xiàn)的 HTTP 應(yīng)用時(shí)會(huì)發(fā)現(xiàn),無(wú)論你修改了代碼的哪一部份,都必須終止Node.js 再重新運(yùn)行才會(huì)奏效。這是因?yàn)?Node.js 只有在第一次引用到某部份時(shí)才會(huì)去解析腳本文件,以后都會(huì)直接訪問(wèn)內(nèi)存,避免重復(fù)載入,而 PHP 則總是重新讀取并解析腳本(如果沒(méi)有專門(mén)的優(yōu)化配置)。Node.js的這種設(shè)計(jì)雖然有利于提高性能,卻不利于開(kāi)發(fā)調(diào)試,因?yàn)槲覀冊(cè)陂_(kāi)發(fā)過(guò)程中總是希望修改后立即看到效果,而不是每次都要終止進(jìn)程并重啟。
這時(shí)若你修改了js文件,或是調(diào)試功能,或是增加功能。這時(shí)需要重新發(fā)布該服務(wù),每次修改都需要執(zhí)行以下兩步:
1 control+c
2 node server.js
?
很不爽!因此有人開(kāi)發(fā)了一個(gè)自動(dòng)發(fā)布(熱發(fā)布)的工具,你只需要在修改文件后保存,它就能自動(dòng)替你發(fā)布,這就是所謂的熱部署。就像tomcat或websphere等一些主流的web應(yīng)用服務(wù)器那樣保存即熱部署。下面將介紹兩個(gè)NodeJS中的開(kāi)源熱部署工具。
(1)supervisor
? ? ?supervisor 可以幫助你實(shí)現(xiàn)這個(gè)功能,它會(huì)監(jiān)視你對(duì)代碼的改動(dòng),并自動(dòng)重啟 Node.js。使用方法很簡(jiǎn)單,首先使用 npm 安裝 supervisor:
? ? ?
$ npm install -g supervisor? ? ? 如果你使用的是 Linux 或 Mac,直接鍵入上面的命令很可能會(huì)有權(quán)限錯(cuò)誤。原因是 npm需要把 supervisor 安裝到系統(tǒng)目錄,需要管理員授權(quán),可以使用 sudo npm install -g?supervisor 命令來(lái)安裝。
? ? ??接下來(lái),使用 supervisor 命令啟動(dòng) app.js:
? ? ??
$ supervisor app.js?命令行窗口會(huì)顯示啟動(dòng)成功信息,即開(kāi)啟了代碼監(jiān)聽(tīng):
當(dāng)代碼被改動(dòng)時(shí),運(yùn)行的腳本會(huì)被終止,然后重新啟動(dòng)。在終端中顯示的結(jié)果如下:
supervisor 這個(gè)小工具可以解決開(kāi)發(fā)中的調(diào)試問(wèn)題。
github上的主頁(yè):https://github.com/isaacs/node-supervisor
(2)hotnode
首先需要安裝,打開(kāi)NodeJS命令行工具,輸入sudo npm -g install hotcode進(jìn)行全局安裝
安裝成功后,可以隨時(shí)查看它的版本號(hào),在命令行輸入:hotcode -v
使用很簡(jiǎn)單,執(zhí)行命令:hotcode server.js,輸出信息如下:
每次修改都會(huì)有一條日志打印出來(lái)。
github上的主頁(yè):https://github.com/saschagehlich/hotnode
轉(zhuǎn)載于:https://www.cnblogs.com/CodeGuy/archive/2013/04/27/3043040.html
總結(jié)
以上是生活随笔為你收集整理的NodeJS”热部署“代码,实现动态调试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: iOS网络编程-配置iCloud-图文解
- 下一篇: 计算机科学与技术导论