@cocalc/diff-match-patch

中文文档
1.1.1发布于 2026/10/24Apache-2.0TypeScriptESM + CJS零依赖构建来源已验证近 30 天下载 2772

Diff-Match-Patch 在排字符中包含完整的预算和代理配对支持

中文使用文档

Diff-Match-Patch 以 Typescript 和 完全预算及代理配对支持进行

已制作 Javascript diff- match- patch 适用于生产数字 :

  • 现代打字符 单位测试,由于 diff- match- patch- type 标记。 。 。 .
  • 满 单码支持,感谢 80卢比
  • 我又说 完整 diff 超时支持,它只在别处部分执行,并且对生产使用至关重要(否则您的服务器或浏览器可以很容易地被卡入到百分百的分量上,几分钟)。 见 大的. test.ts (英语)。 。 。 .
  • A 类 确定性工作预算 (单位:千美元)diffWorkLimit,或一个 DiffWorkBudget 换成时钟 默认关闭;没有它,结果就等于1.0.1。 见 工作预算. test.ts。用它来:
    • 合同: diffWorkLimit 将抽象的、 充电的算法步骤限制在 diff_main 和清理(等等) patch_makeiff和 patch_apply模糊的 diffs: 最多 diffWorkLimit + BUDGET_STEP_UNITS × (n + 2) 单位,其中 n 是调用文本的长度(以清理其文本)和 BUDGET_STEP_UNITS 24岁。 单位跟踪算法检查和复制的字符,并跟踪其移动的diff. 发动机级别的工作不是调制的: 串接和平整, ===,语义分数的正则表达式,数组读取和写出,而行编码的散列. 它的成本可能因引擎而异,因此这些单位绑定了算法的步骤,而不是总的CPU.
    • 怎样: 每一步要么先付工钱(如果预算无法支付的话, 所以充电单位是极限加分 最多一步。 一个预算由一个呼叫所做的一切来分担,而时钟从不被读取.
    • 未覆盖 : patch_make组装及其上下文搜索patch_addContext_,每个补丁O(N)不在预算范围之内,因此 patch_apply' 匹配( e)match_main) (中文(简体) ). 预算约束了diff,不是所有 patch_make。 。 。 .
    • 速度 : 在AMD EMYC 7B13核心上的V8(节点)上,大约135,000到180,000个单元需要一毫秒,所以 diffWorkLimit: 25_000_000 是关于 diffTimeout: 0.2 在这里。 这一数字是在那里校准和测量的,没有保证,也不是合同的一部分.
  • 现代 API 用于创建 dmp 对象(仍然向后兼容).

安装

pnpm i @cocalc/diff-match-patch
import { DiffMatchPatch } from "@cocalc/diff-match-patch";
const dmp = new DiffMatchPatch({ diffTimeout: 0.5 });
const patch = dmp.patch_make("ello", "hello world");
console.log(JSON.stringify(patch));
// [{"diffs":[[1,"h"],[0,"ello"],[1," world"]],"start1":0,"start2":0,"length1":4,"length2":11}]
dmp.patch_apply(patch, "ello");
// [ 'hello world', [ true ] ]

文档

官方仓库。 。 。 .

版本与发布记录

@cocalc/diff-match-patch 共发布 4 个版本,首次发布于 2025/10/08;过去 12 个月发布了 2 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.1.1latest2026/10/2417 天前
1.1.02026/10/2120 天前
1.0.12025/10/081.1 年前
1.0.02025/10/081.1 年前

关于 @cocalc/diff-match-patch 的常见问题

@cocalc/diff-match-patch 是什么?

Diff-Match-Patch 在排字符中包含完整的预算和代理配对支持

如何安装 @cocalc/diff-match-patch?

在项目目录运行 npm install @cocalc/diff-match-patch,或使用 pnpm add / yarn add / bun add。

@cocalc/diff-match-patch 支持 TypeScript 吗?

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

@cocalc/diff-match-patch 支持 ESM 还是 CommonJS?

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

@cocalc/diff-match-patch 可以商用吗?

@cocalc/diff-match-patch 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@cocalc/diff-match-patch 的下载量有多少?

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

@cocalc/diff-match-patch 还在维护吗?

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