当前位置: 首页 > 工具软件 > Chokidar > 使用案例 >

Nodejs的chokidar模块监听文件覆盖

施恩
2023-12-01

动态修改配置文件的伪代码实现如下:

  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)
});
...其他两个同理
 类似资料: