# @domandigital/graph 中文文档

规范地址：https://npmcn.com/package/%40domandigital/graph/

版本：0\.7\.1
npm 元数据更新时间：2026-11-02T00:37:14.262Z
中文译文更新时间：2026-11-12T16:19:30.632Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40domandigital/graph
原文对照：https://npmcn.com/package/%40domandigital/graph/?lang=original
项目主页：https://github.com/Doman-Digital/dd-packages/tree/main/packages/graph#readme
源码仓库：https://github.com/Doman-Digital/dd-packages

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

- 包体积（解压后）：109 kB，8 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- Node.js 要求：\>=22\.12
- 运行依赖：0 个
- 首次发布：2026-08-16T16:20:46.379Z
- 最新版本发布：2026-11-02T00:37:13.944Z
- 近 30 天下载量：2716（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：5（近 12 个月 5 个）

## 中文简介

Schema.org 实体-graph 构建者:稳定的@id词汇,节点构建者,以及一个在出船前捕获未解决的 refs并复制@ids的验证器.

## 安装

```sh
npm install @domandigital/graph
```

也可以使用：`pnpm add @domandigital/graph`、`yarn add @domandigital/graph`、`bun add @domandigital/graph`

## README

# @ doman数字/ graph

Schema.org 多曼数字客户端网站的实体图创建者:一个稳定 `@id` 词汇,常见实体类型的节点构建器(Organization, WebSite,人物,地点,服务,文章,FAQPage,BreadcrumbList,项目列表, ProstCatalog)和一个未解决的验证器 `@id` 参考文献 复制 `@id`在他们出发前.

**读取 [原则.md](https://npmcn.com/package/%40domandigital/graph/PRINCIPLES.md) 在将它接入新重播之前, 或 扩展它.** 校对:Portnoy 长期合同,防止投资组合重新流动 断开的计划岛屿.

## 为什么会这样

在整个投资组合中,结构化数据每笔重新执行。 这个 反复出现的缺陷 : `provider` 编号 : `worksFor` 编号 : `publisher` 筑巢为文字 对象代替 `{'@id': ...}` 参考文献,所以一个页面服务与 它所属的组织在任何事物的眼里都是断开的 分析图表。 这个软件包使连接的版本成为默认版本,并且 添加检查( e)`findGraphIssues`),当裁判不在场时,大声地失败了 解析或两个节点相撞 `@id` - 两个失败模式手写 JSON -LD继续运输.

在两个结构不同的地点生产 提取 : `dd-templates` (多尼切模板,每个作者人物节点, `/service-areas/` + 键 `/blog/` 线路)和单商电工站点 (一个创始人, `/electrician/` + 键 `/guides/` 线路通. 都消耗这个软件包 零路由配置 - 每 `@id` 是根- 焦虑 (单位:千美元)`${siteUrl}/#kind-slug`),而不是从实体自己的页面路径来构建.

## 安装

```bash
pnpm add @domandigital/graph
```

公开在npm,Apache-2.0上,发布来源于被标记的发行. 无害环境管理和CJS共同建造船舶,每艘船舶都有自己的类型,因此在以下条件下工作: 两者 `import` 财务报告和审定财务报表 `require`。需要22.12节点或更新.

早期的版本被作为被贴在标签上的一种基特依赖被消耗. 狦琌 升级仍然这样做的还原器,替换 `github:Doman-Digital/dd-graph#vX.Y.Z` 具有正常分解范围的分解器. 您也可以放弃 `resolve.preserveSymlinks: true` 从 `vitest.config.ts` 若为 它被添加到这个软件包中: 它在pnpm左右工作,放一个字形 `#` 在 git 依赖的虚拟存储路径中, Vite 切换为 URL 碎片。 登记册安装没有 `#` {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}在路上 {\\fn黑体\\fs22\\bord1\\shad0\\3ahbe\\4ah00\\fscx67\\fscy66\\2chffffff\\3ch808080}所以工作是.. 现在死了.

## 使用量

```ts
import { createGraphIds, buildSpine, buildService, buildGraph, findGraphIssues } from "@domandigital/graph";

const ids = createGraphIds(siteUrl);

const graph = buildGraph([
  ...buildSpine(
    { name: "Acme Electrical", description: "...", url: siteUrl },
    { name: "Acme Electrical", url: siteUrl },
    ids,
    "Electrician",
  ),
  buildService({ name: "Rewiring", slug: "rewiring", url: `${siteUrl}/services/rewiring` }, ids),
]);

// In CI or a test: fail the build if the graph doesn't resolve.
const issues = findGraphIssues(graph);
if (issues.length > 0) throw new Error(issues.join("\n"));
```

### 评论自己的生意赚不到钱

审查或 `aggregateRating` 发表于企业的 自己的网站,是谷歌所谓的自我服务。 谷歌的音乐 [审查片段指南](https://developers.google.com/search/docs/appearance/structured-data/review-snippet) 将组织和地方商业审查明星限制在审查地点 _其他项目_ 企业。 标记仍然有效,谷歌说 [光靠这个你就不会有手动动作](https://developers.google.com/search/blog/2019/09/making-review-rich-results-more-helpful)。 。 。 . 所以,如果你想,就放出来描述实体, 但永远不要卖或期望 星星从它.

通过网站自己的实体来拥有 `findGraphIssues` 报告情况:

```ts
findGraphIssues(graph, { siteEntityId: ids.org });
// [
//   "self-serving review: aggregateRating on https://acme.example/#organization",
//   "self-serving review: Review of https://acme.example/#organization (12×)",
// ]
```

这些线条是用于决定的,而不是建设失败:在 `self-serving review:` 如果网站有意保留标记,则前缀. 无 `siteEntityId` 输出不变.

### FAQPage 页面

`buildFAQPage` 已贬值。 Google 停止显示 FAQ 丰富的结果 7 May 2026 (英语). 标记仍然有效 建造者仍然工作 所以 已有的页面不需要更改,但不要添加它需要搜索功能.

渲染器 `graph` 作为单一 `<script type="application/ld+json">` 每页. 此包件不会为它运送反射/下个组件 -- -- 排放 战略`next/script` 对平原 `<script>`)是每个地点的选择 -- -- 但是 导出时 `escapeJsonLdForScript(json)` 因此 CMS 作者字符串( a) 质证引用,一个FAQ回答)不能从脚本标记中突出:

```tsx
import { escapeJsonLdForScript } from "@domandigital/graph";

export function JsonLdScript({ graph }: { graph: JsonLdGraph }) {
  return (
    <script
      type="application/ld+json"
      dangerouslySetInnerHTML={{ __html: escapeJsonLdForScript(JSON.stringify(graph)) }}
    />
  );
}
```

## 什么留在消费者

-   Niche/Business-type映射(如"saron")- `['BeautySalon', 'HealthAndBeautyBusiness', 'LocalBusiness']`) (中文(简体) ).
-   CMS- 形状适配器( 将您的 Sanity/ CMS 文档形状映射到 `OrganizationInput` (见e/cn.4/sub.2/2000/l.31).
-   `aggregateRating` 出处/配对逻辑——是否允许你放出评分是遵守决定,而不是图形决定.
-   实际 `<script>` 排放成分.

## 发展

```bash
pnpm install
pnpm test         # vitest
pnpm typecheck    # tsc --noEmit
pnpm build        # tsup -> dist/
```

CI在每一个推拉请求上都运行三个,跨越了22和24号节点.

### 词汇检查

`src/__tests__/vocab.test.ts` 用每个可选字段建立每个节点 检查每一个被发射的密钥 是一个真正的schema.org 属性 该节点的 `@type` 或其中一种超级类型, 相对于一个被钉住的词汇快照 (单位:千美元)`src/__tests__/fixtures/schemaorg-vocab.json`, schema.org 30.1 (英语). 类型脚本 无法做到这一点: 它错过了条件差内未知的密钥, 即 怎么样 `PostalAddress.locality` 运出而不是 `addressLocality`。 。 。 .

添加新内容后 `@type` 给一个建筑师,加进去 `EMITTED_TYPES` 内 `scripts/snapshot-vocab.mjs` 并重现快照:

```bash
pnpm run snapshot:vocab          # pinned version
node scripts/snapshot-vocab.mjs 31.0   # move the pin, then update the test's version assertion
```

## 版本

Semver, 发布到 npm 在标签推。 弹出 `version` 内 `package.json`,承诺, 然后标记( e)`git tag vX.Y.Z && git push --tags`) (中文(简体) ). 发布工作流程检查 标记针对 `package.json` 并拒绝出版 如果他们不同意,然后建造 并且通过 npm 信任的出版来发布, 所以没有 npm 令牌存储在任何地方 每一次释放都附有出处证明.

消费者使用正常的分解范围. 因为现在还是这样 `0.x`,一个小起落 可以携带一个类型变化,该变化作为消费者的编译错误表面,即 系统的运作情况: `v0.1.0` 改为 `v0.1.1` 无效/ 未定义的修补 在被窃听后几分钟内.

## 常见问题

### @domandigital/graph 是什么？

Schema\.org 实体-graph 构建者:稳定的@id词汇,节点构建者,以及一个在出船前捕获未解决的 refs并复制@ids的验证器\.

### 如何安装 @domandigital/graph？

在项目目录运行 npm install @domandigital/graph，或使用 pnpm add / yarn add / bun add。

### @domandigital/graph 支持 TypeScript 吗？

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

### @domandigital/graph 支持 ESM 还是 CommonJS？

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

### @domandigital/graph 需要什么版本的 Node\.js？

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

### @domandigital/graph 可以商用吗？

@domandigital/graph 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @domandigital/graph 的下载量有多少？

根据 npm 官方下载统计，@domandigital/graph 在 2026/10/13 – 2026/11/11 这 30 天内被下载 2,716 次，日均约 91 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @domandigital/graph 还在维护吗？

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

