使模組快取無效
在開發過程中,你可能會發現在同一模組上多次使用 require()
始終返回相同的模組,即使你對該檔案進行了更改也是如此。這是因為模組在第一次載入時被快取,並且任何後續模組載入都將從快取載入。
要解決此問題,你必須知道快取中的條目。例如,如果你載入了一個模組:
var a = require('./a');
然後,你可以刪除快取條目:
var rpath = require.resolve('./a.js');
delete require.cache[rpath];
然後再次要求模組:
var a = require('./a');
請注意,這不建議在生產中使用,因為 delete
將僅刪除對已載入模組的引用,而不是已載入的資料本身。該模組不是垃圾回收,因此不正確使用此功能可能會導致記憶體洩漏。