用pm2
作express.js
應用的自動化部署工具,開發過程當中發現用watch
參數監控工程目錄下文件內容變化時自動進行熱加載的過程出現問題。html
其只能監控到html
文件的變化,對於js
文件則監控不到。git
詳述以下
工程的目錄結構相似以下:github
project |-- app.js |-- ecosystem.json |-- bin |-- www |-- other_folder
bin/www
爲工程的啓動入口。ecosystem.json
爲pm2
的配置文件,位於工程的根目錄下。ecosystem.json
內容爲:express
{ "apps": [ { "name": "myapp", "script": "./bin/www", //是相對於ecosystem.json文件的相對目錄 "watch": true, .... } ] }
watch
默認值爲true
,即上述配置可不設置watch
選項,一樣也能監控內容變化,監控的爲ecosystem.json
所在的當前目錄的下的全部內容。json
此外,watch
值還可爲false
(關閉watch)、表示某個路徑的字符串
或表示多個目錄的字符串數組
。數組
可是,根據上面的配置,卻發現不能監控到js
文件的變化。例如,app.js
文件的變化就監控不到。服務器
究其緣由,是因爲服務器的文件系統引發的。app
解決辦法
在ecosytem.json
文件中設置watch_options
選項,以下工具
"watch_options": { "usePolling": true }
經實踐,可解決。有興趣的可研讀這裏。code