# ohos_diff_match_patch_js **Repository Path**: pavilion-stone-walkway/ohos_diff_match_patch_js ## Basic Information - **Project Name**: ohos_diff_match_patch_js - **Description**: 实现直接采用上游官方 JavaScript 源码(逐字节一致,算法零改动),并附带完整的 ArkTS 类型声明(.d.ets),API 与上游 JavaScript 实现完全兼容。零依赖,不依赖任何平台 API(文件、网络、DOM 均无),可在任意 OpenHarmony应用中使用。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-08 - **Last Updated**: 2026-09-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ohos_diff_match_patch_js [google/diff-match-patch](https://github.com/google/diff-match-patch) 的 OpenHarmony 封装,发布为 OpenHarmony 三方库(har):高性能纯文本 **差异计算(diff)**、**补丁生成与应用(patch)**、**模糊匹配(match)**。 实现直接采用上游官方 JavaScript 源码(**逐字节一致,算法零改动**),并附带完整的 ArkTS 类型声明(`.d.ets`),API 与上游 JavaScript 实现完全兼容。 - 仓库地址: - ohpm 包名:`@pavilion-stone-walkway/diff-match-patch` - 使用说明(面向使用者):见 [`ohos/library/README.md`](ohos/library/README.md) ## 仓库结构 ``` ohos/library/ # 三方库源码(唯一真身,发布到 ohpm 的内容) Index.ets # 对外导出入口 Index.d.ets / src/main/ets/components/diff_match_patch.d.ets # ArkTS 类型声明 src/main/ets/components/diff_match_patch.js # 上游官方实现(逐字节一致) oh-package.json5 / README.md / CHANGELOG.md / LICENSE deveco-build/ # hvigor 构建工程(应用级工程壳,构建 har 必需) diff_match_patch/ # 【生成产物】由 tools/sync_library.cjs 同步,勿手改、勿提交 javascript/ # 上游官方 JS 实现(未修改,打包基准) tests/ # 与上游参考实现的差分对照测试(Node.js 运行,712 项) tools/ convert.js # 由上游 JS 生成 har 内 .js(仅适配 ES 模块导出) sync_library.cjs # 同步 ohos/library -> deveco-build/diff_match_patch build_har.bat # 一键同步 + 构建 har run_tests.bat # 一键运行 712 项对照测试 ``` ## 构建 har 改代码只改 `ohos/library/`,然后双击: ``` tools\build_har.bat ``` 脚本会自动同步源码到 `deveco-build/diff_match_patch/` 并调用 hvigorw 构建,成功后在结尾打印 har 路径: ``` deveco-build/diff_match_patch/build/default/outputs/default/diff_match_patch.har ``` 也可以在 DevEco Studio 中打开 `deveco-build/` 工程构建(首次需先运行一次 `node tools/sync_library.cjs` 生成模块目录)。 > `deveco-build/diff_match_patch/` 是生成产物,已加入 `.gitignore`。首次 clone 后若直接在 IDE 打开 `deveco-build/` 报模块缺失,先跑一次上面的同步脚本即可。 ## 运行对照测试(验证与上游行为一致) ```bash tools\run_tests.bat ``` 期望输出: ``` PASS: 712 differential checks, zero mismatches ``` ## 发布到 ohpm 1. ohpm.openharmony.cn 注册账号、创建组织 `pavilion-stone-walkway`(需审核) 2. `ssh-keygen -m PEM -t RSA -b 4096` 生成密钥对(需设密码),公钥传到中心仓「个人中心 → 认证管理」 3. 配置发布凭证: ```bash ohpm config set key_path <私钥路径> ohpm config set publish_id <发布码> ``` 4. 构建 har 后发布: ```bash ohpm publish deveco-build/diff_match_patch/build/default/outputs/default/diff_match_patch.har ``` 发布后进入人工审核,详见 [ohpm 中心仓文档](https://ohpm.openharmony.cn/)。 ## 协议 [Apache-2.0](LICENSE)。基于 google/diff-match-patch 封装,原版版权归属 The diff-match-patch Authors。