# @atlaskit/editor-plugin-local-id 中文文档

规范地址：https://npmcn.com/package/%40atlaskit/editor-plugin-local-id/

版本：28\.0\.4
npm 元数据更新时间：2026-11-02T05:43:46.789Z
中文译文更新时间：2026-11-07T02:57:12.195Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40atlaskit/editor-plugin-local-id
原文对照：https://npmcn.com/package/%40atlaskit/editor-plugin-local-id/?lang=original
项目主页：https://bitbucket.org/atlassian/atlassian-frontend-mirror#readme
源码仓库：https://bitbucket.org/atlassian/atlassian-frontend-mirror

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

- 包体积（解压后）：163 kB，59 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：8 个
- peer 依赖：react ^18\.2\.0 \|\| ^19\.2\.0，@atlaskit/editor-common ^134\.4\.0
- 首次发布：2025-08-07T02:21:02.631Z
- 最新版本发布：2026-11-02T05:43:46.568Z
- 近 30 天下载量：27993（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：291（近 12 个月 271 个）

## 中文简介

@atlaskit/editor-core的本地界面插件

## 安装

```sh
npm install @atlaskit/editor-plugin-local-id
```

也可以使用：`pnpm add @atlaskit/editor-plugin-local-id`、`yarn add @atlaskit/editor-plugin-local-id`、`bun add @atlaskit/editor-plugin-local-id`

## README

# 编辑器插件本地ID

@atlaskit/editor-core的本地界面插件

**说明:** 这一构成部分是为阿特拉斯系统内部开发而设计的。 外部捐助者将能够使用这一构成部分,但无法提交问题.

## 概览

本地 ID 插件确保文档中的所有非标志节点都具有独有性 `localId` 属性。 它结合了两种最佳业绩方法:

1.  **一次性初始化扫描** - 编辑器启动时将缺失的本地ID添加到已存在的节点
2.  **递增交易处理** - 在创建新节点时添加本地ID

## 主要特点

-   **自动指定本地身份** - 确保没有本地身份证的所有节点都能收到独特的标识符
-   **高效初始化** - 用途 `requestIdleCallback` 与 `requestAnimationFrame` 萨法里倒下
-   **递增更新** - 仅在交易期间处理更改了节点
-   **节点过滤** - 忽略节点类型(文本、硬断层、媒体组)
-   **批处理** - 在一个交易中应用所有更新
-   **跟踪错误** - 通过监视器插件对本地ID更改进行可选错误报告
-   **插件动作** - 提供 `getNode` 财务报告和审定财务报表 `replaceNode` 本地 ID 查询和修改节点的动作

### 如何运作

#### 初始化阶段

-   **触发**: 使用编辑器视图的初始化生命周期来安排扫描
-   **执行**: 在浏览器闲置时间执行单个文档 trversal
-   **时间安排**: 用途 `requestIdleCallback` 与 `requestAnimationFrame` 萨法里倒下
-   **目的**:确保所有现有的节点都有本地的ID

#### 交易处理阶段

-   **触发**: 对每次更改文档的交易激活
-   **执行**: 只处理交易步骤中新建/更改的节点
-   **业绩**: 只扫描已更改的范围, 而不是整个文档
-   **目的**: 在新创建的节点中添加本地ID

#### 节点处理

每个节点(在初始化和交易处理期间):

-   **忽略了节点**: 总是跳过( 文本, 硬块)
-   **已存在的本地Id 节点**: 左转不变
-   **没有本地标识的节点**: 生成和指派新的 UUID

#### 交易处理

-   **递增更新**: 只有实际更改的处理节点
-   **高效扫描**: 用途 `step.getMap()` 以识别已更改的区域
-   **位置精确度**: 获得所有已更改节点的精确文档位置
-   **批处理**: 单一交易中应用的所有更新

#### 行为

| 大小写 | 采取的行动 | 交易影响 |
| --- | --- | --- |
| 没有现有节点 `localId` (开始) | `localId` 添加 | 所有更改的单一交易 |
| 未添加新节点 `localId` (交易) | `localId` 添加 | 所有更改的单一交易 |
| 节点已经有一个 `localId` | 不变 | 无交易 |
| 只有选择更改 | 未采取行动 | 无交易 |
| 切换操作 | 跳过以避免冲突 | 无交易 |
| 文档不变 | 提前退出 | 无交易 |

## 安装

-   **安装** - 说吧 _线条添加 @ atlaskit/ editor- plugin- local- id_
-   **无** - 说吧 [@atlaskit/编辑-plugin-local-id](https://www.npmjs.com/package/@atlaskit/editor-plugin-local-id)
-   **来源** - 说吧 [键盘](https://bitbucket.org/atlassian/atlassian-frontend/src/master/packages/editor/editor-plugin-local-id)
-   **套装** - 说吧 [unpkg.com (英语)](https://unpkg.com/@atlaskit/editor-plugin-local-id/dist/)

## 使用量

**仅内部使用**

@atlaskit/editor-plugin-local-id是供@atlaskit/editor-core内部使用,并作为您产品中编辑器的插件依赖.

不支持直接使用此组件.

请看 [Atlaskit - 本地代号编辑器插件](https://atlaskit.atlassian.com/packages/editor/editor-plugin-local-id) 用于此软件包的文档和示例.

## 支助

对于内部阿特拉斯人, 访问懒惰的通道 [\# 帮助编辑器 #](https://atlassian.slack.com/archives/CFG3PSQ9E) 支助或访问 [去/编辑-帮助](https://go/editor-help) 以提交错误.

## 许可证

请看 [阿特拉斯前端 - 许可证](https://hello.atlassian.net/wiki/spaces/AF/pages/2589099144/Documentation#License) 获取更多的许可证信息.

## 常见问题

### @atlaskit/editor-plugin-local-id 是什么？

@atlaskit/editor-core的本地界面插件

### 如何安装 @atlaskit/editor-plugin-local-id？

在项目目录运行 npm install @atlaskit/editor-plugin-local-id，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：react（^18\.2\.0 \|\| ^19\.2\.0）、@atlaskit/editor-common（^134\.4\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @atlaskit/editor-plugin-local-id 支持 TypeScript 吗？

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

### @atlaskit/editor-plugin-local-id 支持 ESM 还是 CommonJS？

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

### @atlaskit/editor-plugin-local-id 可以商用吗？

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

### @atlaskit/editor-plugin-local-id 的下载量有多少？

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

### @atlaskit/editor-plugin-local-id 还在维护吗？

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

