能否能分情况来加载 Module._cache ?
发布于 9 年前 作者 yakczh 3202 次浏览 最后一次编辑是 8 年前 来自 问答

通常一个完整的项目都是有框架和类库 配置文件和业务代码和页面模板,修改最频繁的是业务代码和页面模板,框架和类库以及配置文件很少改动 nodejs在require时候会对第一次加载的文件做cache,这样修改了代码了以后需要重启服务器,当然有很多辅助的模块通过重启服务器能做这个事情,但是当业务复杂以后,重启服务会丢失很多的现场环境,有没有一种优雅的方式来动态处理 Module._cache 比如 环境变量或者配置文件 如果在处理Module._cache的时候判断环境变量 ,如果是 CACHE_MODE=ALL 或者默认那就全部缓存 CACHE_MOE=FRRAMEWORK ^LIB 这样只缓存框架和库, 除次以外的代码都要每次重新加载 FRRAMEWORK和LIB的具体定义可以用一个文件来定义 开发好了上线以后,设置CACHE_MODE=ALL 或者清空环境变量就可以了,这样上线调试也方便多了,毕竟谁也不能保证线上的代码就不会出错,一旦出错,老是重启服务器也不是好的解决方案

1 回复
setInterval(function () {
	delete require.cache[require.resolve('../conf/configKey')];
	Key = require('../conf/configKey');
}, Key.ReloadKeyTime);

i use this , every day reload once. any better solutiions can share ?

回到顶部