require.cache
模块在需要时缓存在此对象中。通过从此对象中删除键值,下一次 require
将重新加载模块。这不适用于 原生插件,重新加载将导致错误。
¥Modules are cached in this object when they are required. By deleting a key
value from this object, the next require
will reload the module.
This does not apply to native addons, for which reloading will result in an
error.
添加或替换条目也是可能的。在内置模块之前检查此缓存,如果将与内置模块匹配的名称添加到缓存中,则只有 node:
前缀的 require 调用将接收内置模块。小心使用!
¥Adding or replacing entries is also possible. This cache is checked before
built-in modules and if a name matching a built-in module is added to the cache,
only node:
-prefixed require calls are going to receive the built-in module.
Use with care!
const assert = require('node:assert');
const realFs = require('node:fs');
const fakeFs = {};
require.cache.fs = { exports: fakeFs };
assert.strictEqual(require('fs'), fakeFs);
assert.strictEqual(require('node:fs'), realFs);