export const isWindows = typeof process !== 'undefined' && process.platform === 'win32'; // 暂时无法使用 jest 进行单元测试,原因可参见 // https://github.com/facebook/jest/issues/5741 export default function (cacheKey) { // windows 下 require.cache 中路径 key 为类似 ‘c:\demo\.umirc.ts’ const cachePath = isWindows ? cacheKey.replace(/\//g, '\\') : cacheKey; if (require.cache[cachePath]) { const cacheParent = (require.cache[cachePath]).parent; let i = cacheParent?.children.length || 0; // 清理 require cache 中 parents 的引用 while (i--) { if (cacheParent.children[i].id === cachePath) { cacheParent.children.splice(i, 1); } } delete require.cache[cachePath]; } }