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);