import-fresh

中文文档
4.0.1发布于 2026/09/26MITTypeScriptES Module零依赖近 30 天下载 5.7亿

导入模块时绕过缓存

中文使用文档
文档目录8 节
  1. 需求
  2. 安装
  3. 用法
  4. API
  5. createImportFresh (parentURL、期权?)
  6. importFresh (moduleSpecifier、期权?)
  7. 警告
  8. 相关

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。这是一个不可避免的“内存泄漏”,不被认为是一个漏洞。

版本与发布记录

import-fresh 共发布 10 个版本,首次发布于 2017/05/21;过去 12 个月发布了 2 个版本。

版本发布日期距今
4.0.1latest2026/09/261 个月前
4.0.02026/02/258 个月前
3.3.12025/02/021.8 年前
3.3.02020/12/205 年前
3.2.22020/11/026 年前
3.2.12019/11/146 年前

关于 import-fresh 的常见问题

import-fresh 是什么?

导入模块时绕过缓存

如何安装 import-fresh?

在项目目录运行 npm install import-fresh,或使用 pnpm add / yarn add / bun add。

import-fresh 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

import-fresh 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

import-fresh 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.15。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

import-fresh 可以商用吗?

import-fresh 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

import-fresh 的下载量有多少?

根据 npm 官方下载统计,import-fresh 在 2026/10/04 – 2026/11/02 这 30 天内被下载 567,721,850 次,日均约 18,924,062 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

import-fresh 还在维护吗?

最新版本 4.0.1 发布于 2026/09/26(1 个月前);至今共发布 10 个版本,其中过去 12 个月发布了 2 个;首次发布于 2017/05/21。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。