# @flesh-and-blood/search 中文文档

规范地址：https://npmcn.com/package/%40flesh-and-blood/search/

版本：7\.3\.3
npm 元数据更新时间：2026-11-01T03:31:34.110Z
中文译文更新时间：2026-11-01T04:04:39.697Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40flesh-and-blood/search
原文对照：https://npmcn.com/package/%40flesh-and-blood/search/?lang=original
项目主页：https://github.com/fabrary/cards#readme
源码仓库：https://github.com/fabrary/cards

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

- 包体积（解压后）：232 kB，37 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：1 个
- peer 依赖：@flesh-and-blood/types ^7\.3\.3
- 首次发布：2023-09-17T16:27:32.869Z
- 最新版本发布：2026-11-01T03:31:33.918Z
- 已发布版本数：1002（近 12 个月 345 个）

## 中文简介

血肉卡牌的TypeScript搜索引擎

## 安装

```sh
npm install @flesh-and-blood/search
```

也可以使用：`pnpm add @flesh-and-blood/search`、`yarn add @flesh-and-blood/search`、`bun add @flesh-and-blood/search`

## README

# @flesh-and-blood /搜索

一、 [fuse.js](https://www.fusejs.io/)的搜索引擎 **血肉之躯** 卡片。

## 安装

```bash
npm i @flesh-and-blood/search @flesh-and-blood/types
```

`@flesh-and-blood/types` 是一个 **同行的依赖**：与这个包一起安装

## 使用

```ts
import Searcher from "@flesh-and-blood/search";
import { cards, releases } from "@flesh-and-blood/cards";

const searcher = new Searcher(cards, { releases });
const { searchResults } = searcher.search("rhinar go again");
```

-   `new Searcher(cards, { releases })`，或者 `{ index }` 共享目录索引 建立与 `getCatalogueIndex(cards, releases)`
-   `index.getHero(name)` 解析玩家为英雄写的任何名字到它的键 `l:` 和 `sp:` 做; `index.getHeroMatches(name)` 回答每个英雄的名字，每个英雄卡， 为了一个名字，几个英雄坚守； `index.getByRole(CardRole.Hero)` 列出每个英雄卡牌，和 `index.getHeroCardsByFormat(format)` 英雄卡牌合法的格式；过滤器任意开启 `card.heroPool` 一个英雄池。 `getHeroFilterValue(heroCard)` 写 `l:` 筛选英雄卡
-   几个英雄持有的英雄名被报告 `unresolvedFilters` 作为 `{ reason: "ambiguous", values, candidates }`，每位候选人都有一张英雄牌的名字
-   `.search(text)` → `SearchResults`： `{ searchResults: SearchCard[], appliedFilters, keywords, attributes }`

只有数据的模块可以作为子路径导入（方便于惰性加载的UI，如搜索栏下拉）：

```ts
import { shorthands } from "@flesh-and-blood/search/shorthands";
```

## 包括什么

-   默认导出: **`Searcher`**，搜索引擎
-   类型: `SearchResults`， `SearchCard`
-   数据模块（子路径导入）： `shorthands`， `memes`
-   筛选、排除和辅助工具(`filters`， `exclusions`， `legality`， `helpers`， `constants`， `related`）

## 参与这个项目

```bash
npm run build   # build:esm (per-file ESM) + build:cjs (bundled) + tsc declarations
npm test        # vitest
```

用途 `@flesh-and-blood/cards` （`file:../cards`)作为测试的开发依赖项。

## 常见问题

### @flesh-and-blood/search 是什么？

血肉卡牌的TypeScript搜索引擎

### 如何安装 @flesh-and-blood/search？

在项目目录运行 npm install @flesh-and-blood/search，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@flesh-and-blood/types（^7\.3\.3）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @flesh-and-blood/search 支持 TypeScript 吗？

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

### @flesh-and-blood/search 支持 ESM 还是 CommonJS？

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

### @flesh-and-blood/search 可以商用吗？

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

### @flesh-and-blood/search 还在维护吗？

最新版本 7\.3\.3 发布于 2026/11/01（2 天前）；至今共发布 1002 个版本，其中过去 12 个月发布了 345 个；首次发布于 2023/09/18。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

