Nodejs的chokidar模塊監聽文件覆蓋

動態修改配置文件的僞代碼實現如下:

  1. 啓動時合併配置
const config4code = /home/code/config/代碼中的配置.js;
const config4env = /home/env/prod/config/生產環境的配置.js;
const config4cluster = /home/cluster/config/集羣中的配置.js
global.config = Object.assign(config4code, config4env, config4cluster);
  1. 監聽他們的變動
chokidar.watch('/home/code/config/代碼中的配置.js').on('all', () => {
  Object.assign(global.config, /home/code/config/代碼中的配置.js)
});
...其他兩個同理

如果我們直接去修改這三個文件,是能監聽到變動併成功合併修改配置的。

但是在我們項目中,是使用mv命令用新文件覆蓋舊文件,而不是修改文件。這就導致第一次覆蓋能監聽成功,但是後續覆蓋就不生效了。

解決方案是監聽目錄的變化,而不是監聽單個文件

chokidar.watch('/home/code/config/代碼中的配置.js').on('all', () => {
  Object.assign(global.config, /home/code/config)
});
...其他兩個同理
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章