# jest-haste-map 中文文档

规范地址：https://npmcn.com/package/jest-haste-map/

版本：30\.5\.1
npm 元数据更新时间：2026-09-01T07:58:33.743Z
中文译文更新时间：2026-11-05T16:07:07.015Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/jest-haste-map
原文对照：https://npmcn.com/package/jest-haste-map/?lang=original
项目主页：https://github.com/jestjs/jest#readme
源码仓库：https://github.com/jestjs/jest

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：159 kB，8 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：^18\.14\.0 \|\| ^20\.0\.0 \|\| ^22\.0\.0 \|\| \>=24\.0\.0
- 运行依赖：11 个
- 首次发布：2016-04-14T14:16:04.602Z
- 最新版本发布：2026-09-01T07:58:33.559Z
- 近 30 天下载量：249667388（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：293（近 12 个月 5 个）

## 中文简介

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

## 安装

```sh
npm install jest-haste-map
```

也可以使用：`pnpm add jest-haste-map`、`yarn add jest-haste-map`、`bun add jest-haste-map`

## README

# 快速地图

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

## 为什么要开玩笑?

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

## 安装

以 npm 为单位 :

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

有线条 :

```bash
yarn add jest-haste-map --dev
```

## 使用量

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

### 简单使用

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

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

```javascript
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](https://github.com/jestjs/jest/tree/main/packages/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 和提交记录判断。

