import-fresh
导入模块时绕过缓存
当您需要重新导入模块时,用于测试目的。
需求
- Node.js 22.15或更高版本(使用模块加载器钩子)
安装
npm install import-fresh
用法
// foo.js
let count = 0;
export default function increment() {
count += 1;
return count;
}
import createImportFresh from 'import-fresh';
const importFresh = createImportFresh(import.meta.url);
const {default: increment} = await importFresh('./foo.js');
increment();
//=> 1
increment();
//=> 2
const {default: freshIncrement} = await importFresh('./foo.js');
freshIncrement();
//=> 1
API
createImportFresh (parentURL、期权?)
返回一个 importFresh 函数绑定到 parentURL。
parentURL 必须是一个有效的分层URL字符串(例如 import.meta.url)或 URL 实例。
选项
类型: object
这些选项是进程全局的。同一进程中的每个调用必须使用相同的 skipNodeModules 价值。
skipNodeModules
类型: boolean
默认值: false
当 true,内部模块 node_modules 目录没有缓存破坏。这意味着来自npm包的依赖项将在新的导入中共享状态,这在你只想新导入自己的代码时非常有用。
importFresh (moduleSpecifier、期权?)
返回的函数 createImportFresh。
选项
类型: object
importAttributes
类型: object
导入传递给 import(). 每个值必须是字符串。JSON模块会自动导入 {type: 'json'} 当指定符以。结尾时 .json。
警告
仅供开发使用。重复调用会增加ESM模块缓存,因为每次调用都使用唯一的缓存破坏URL。这是一个不可避免的“内存泄漏”,不被认为是一个漏洞。
相关
- clear-module —清除导入缓存中的模块
- 进口 —从指定路径导入模块
- import-cwd —从当前工作目录导入模块
- import-lazy —惰性导入模块