jest-haste-map

中文文档
30.5.1发布于 2026/09/01MITTypeScriptESM + CJS近 30 天下载 2.5亿

jest-haste-map 是Jest,一个受欢迎的JavaScript测试框架,用来创建项目中快速查找文件的模块. 它有助于在测试过程中有效定位和跟踪文件变化,使其对大型项目特别有用

中文使用文档
文档目录6 节
  1. 为什么要开玩笑?
  2. 安装
  3. 使用量
  4. 简单使用
  5. 示例使用( 将所有文件与工程中的. js 扩展)
  6. 选项

快速地图

jest-haste-map 是Jest,一个受欢迎的JavaScript测试框架,用来创建项目中快速查找文件的模块. 它帮助Jest在测试过程中高效地定位并跟踪文件的更改,使得它对于拥有许多文件的大项目特别有用.

为什么要开玩笑?

  • 平行爬行和分析: jest-haste-map 爬行整个项目, 提取依赖性, 并分析文件平行 跨工人过程。 这可以大大地改善地图建设过程的性能.
  • 缓存文件系统 : jest-haste-map在内存和磁盘中保存文件系统的缓存. 这允许快速文件相关操作,例如解决模块导入和检查更改.
  • 最小工作数: jest-haste-map 只在文件更改时进行最小工作量的必要工作. 使用时 观察者 (为大型工程推荐),杰斯德要求监视员更改文件,而不是爬行文件系统. 没有监视者, @ parcel/ 监视器 它为平台选择最好的本土后端(fs-events 在macOS上, inotify 在Linux上, windows )),在视窗上.
  • 文件系统监视 : jest-haste-map可以监视文件系统进行更改. 这有利于构建交互式工具,例如监视模式.

安装

以 npm 为单位 :

npm install jest-haste-map --save-dev

有线条 :

yarn add jest-haste-map --dev

使用量

jest-haste-map 两者都兼容 ES modules 财务报告和审定财务报表 CommonJS

简单使用

const map = new HasteMap.default({
  // options
});

示例使用( 将所有文件与工程中的. js 扩展)

import HasteMap from 'jest-haste-map';
import os from 'os';
import {dirname} from 'path';
import {fileURLToPath} from 'url';

const root = dirname(fileURLToPath(import.meta.url));

const map = new HasteMap.default({
  id: 'myproject', //Used for caching.
  extensions: ['js'], // Tells jest-haste-map to only crawl .js files.
  maxWorkers: os.availableParallelism(), //Parallelizes across all available CPUs.
  platforms: [], // This is only used for React Native, you can leave it empty.
  roots: [root], // Can be used to only search a subset of files within `rootDir`
  retainAllFiles: true,
  rootDir: root, //The project root.
});

const {hasteFS} = await map.build();

const files = hasteFS.getAllFiles();

console.log(files);

选项

选项类型需求默认值
缓存目录字符串没有os.tmpdir()
计算依赖性布尔没有true
计算Sha1布尔没有false
控制台控制台没有- 说吧
依赖 extractor字符串 qq 无效没有null
启用系统链接布尔没有false
扩展矩阵 < string >对- 说吧
强制节点系统API布尔没有false
匆忙 ImplModulePath 软件字符串没有- 说吧
快速移动模块Path字符串没有- 说吧
编号字符串对- 说吧
忽略标签仓促RegExp没有- 说吧
最大工人数编号对- 说吧
模拟字符串没有- 说吧
平台矩阵 < string >对- 说吧
重置缓存布尔没有- 说吧
保留全部文件布尔对- 说吧
rootDir 函数字符串对- 说吧
树根矩阵 < string >对- 说吧
跳过PackageJson布尔没有false
丢入模块组合布尔没有false
使用监视器布尔没有true

更多,你可以检查 gi

版本与发布记录

jest-haste-map 共发布 293 个版本,首次发布于 2016/04/14;过去 12 个月发布了 5 个版本。

版本发布日期距今
30.5.1latest2026/09/012 个月前
30.5.02026/08/282 个月前
30.4.12026/05/085 个月前
30.4.02026/05/085 个月前
30.3.02026/03/107 个月前
30.2.02025/09/281.1 年前

其他发布通道:alpha → 20.0.5,next → 30.0.0-rc.1。

关于 jest-haste-map 的常见问题

jest-haste-map 是什么?

jest-haste-map 是Jest,一个受欢迎的JavaScript测试框架,用来创建项目中快速查找文件的模块. 它有助于在测试过程中有效定位和跟踪文件变化,使其对大型项目特别有用

如何安装 jest-haste-map?

在项目目录运行 npm install jest-haste-map,或使用 pnpm add / yarn add / bun add。

jest-haste-map 支持 TypeScript 吗?

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

jest-haste-map 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

jest-haste-map 需要什么版本的 Node.js?

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

jest-haste-map 可以商用吗?

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

jest-haste-map 的下载量有多少?

根据 npm 官方下载统计,jest-haste-map 在 2026/10/05 – 2026/11/03 这 30 天内被下载 249,667,388 次,日均约 8,322,246 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

jest-haste-map 还在维护吗?

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