require引入和清除缓存
官方文档对require.cache的解释:
被引入的模块将被缓存在这个对象中。 从此对象中删除键值对将会导致下一次 require 重新加载被删除的模块。 这不适用于原生插件,因为它们的重载将会导致错误。
可以添加或替换入口。 在加载原生模块之前会检查此缓存,如果将与原生模块匹配的名称添加到缓存中,则引入调用将不再获取原生模块。 谨慎使用!
require.resolve则相当于把相对路径转化成绝对路径,避免了自己手写的绝对路径跟cache里的key不一致的问题
app;
// require引入
this.app = require('./json/test.json');
// require清除缓存
delete require.cache[require.resolve('./json/test.json')];
this.app = require('./json/test.json');