鸿蒙 PC Markdown 编辑器构建交付Debug、Release HAP 与哈希校验应用在 DevEco中能运行不等于已经形成可重复交付。OhMarkdown同时包含 ArkTS原生代码和 Vite Web内核构建顺序必须先生成离线 HTML再由 Hvigor打入 HAPDebug、Release、测试构建、签名状态、产物大小和哈希都要分别记录。本文说明鸿蒙 PC项目的双构建链、API 24配置、单文件资源、Release unsigned HAP和 SHA-256校验。代码位于 https://gitcode.com/VON-/codex_md_oh对应提交3a9146e。两套工具链组成一个产物Web层TypeScript、CodeMirror、markdown-it、DOMPurify和 CSS经 Vite生成entry/src/main/resources/rawfile/editor/index.html原生层ArkTS、资源、module.json5和 rawfile经 Hvigor生成 HAP。若只运行 assembleHap而没有先构建 Web包里可能是旧 HTML若只运行 Vite得到的也不是鸿蒙应用。构建脚本把顺序固化避免依赖开发者记忆。Web 构建输出到原生资源exportdefaultdefineConfig({base:./,plugins:[viteSingleFile()],build:{outDir:../entry/src/main/resources/rawfile/editor,emptyOutDir:true,sourcemap:false,target:es2020,chunkSizeWarningLimit:800}});base: ./让资源相对本地页面singlefile把 JS/CSS内联ArkWeb不需要外部文件或网络emptyOutDir删除旧产物避免废弃 chunk残留Release不带 sourcemap减少包体和源码暴露。构建目标 ES2020与当前 ArkWeb能力匹配升级目标前需在 API 24设备验证。build-editor 作为前置步骤Debug与 Release脚本都先执行$(dirname--$0)/build-editor.shbuild-editor进入 web-editor并运行 npm buildTypeScript--noEmit先检查类型再 Vite写 rawfile。任何失败因set -eu中止不会继续打包含旧资源的 HAP。生产测试还读取最终 index.html断言没有外部 script和 stylesheet。构建成功与离线约束同时进入门禁。DevEco 环境显式配置DEVECO_HOME${DEVECO_HOME:-/Applications/DevEco-Studio.app/Contents}exportJAVA_HOME${JAVA_HOME:-$DEVECO_HOME/jbr/Contents/Home}exportDEVECO_SDK_HOME${DEVECO_SDK_HOME:-$DEVECO_HOME/sdk}默认使用 DevEco附带 JBR和 SDK减少系统 Java差异CI或其他机器可以覆盖。脚本不把个人 SDK路径写进仓库 local.properties。构建日志要记录 DevEco、Hvigor和 SDK版本。仅记录“macOS”不足以复现工具链。产品与 SDK 配置{ name: default, signingConfig: default, targetSdkVersion: 6.1.1(24), compatibleSdkVersion: 6.1.1(24), runtimeOS: HarmonyOS, buildOption: { strictMode: { caseSensitiveCheck: true, useNormalizedOHMUrl: true } } }目标和兼容均 API 24。严格大小写检查避免 macOS文件系统上可用、目标环境因路径大小写失败规范 OHM URL减少模块引用差异。buildModeSet明确 debug和 release。entry目标还包含 ohosTest主模块和测试模块使用同一产品基线。Debug 构建exec$DEVECO_HOME/tools/hvigor/bin/hvigorw\assembleHap\--modemodule\-pproductdefault\-pmoduleentrydefault\-pbuildModedebug\--no-daemonDebug用于快速安装模拟器、HDC调试和功能验证。exec让 Hvigor退出码成为脚本退出码--no-daemon降低不同运行残留状态代价是每次启动成本。Debug通过证明 ArkTS、资源和 Web产物可以组装不代表 Release优化路径通过。Release 构建Release只切换-pbuildModereleaseentry release配置当前关闭 Ark混淆arkOptions: { obfuscation: { ruleOptions: { enable: false, files: [ ./obfuscation-rules.txt ] } } }Alpha阶段优先调试与可诊断。正式发布前应启用并验证混淆特别是 JavaScript Proxy方法名、反射资源和序列化字段不能被错误改名。unsigned 不是发布包根配置signingConfigs为空最终文件名为entry-default-unsigned.hap。它可用于构建、体积和部分安装验证但不能宣称完成商店签名与发布。签名需要证书、profile、密钥保护和流水线密钥策略。不能把私钥提交仓库也不能在文章中暴露本机证书路径。后续发布门禁应验证签名主体、有效期和权限。产物大小与哈希最终 Release unsigned HAP记录size: 1006605 bytes sha256: 6d08d725bcb219ae97508281477cedb40d766d6860d7062e14d873f30322e31cSHA-256把测试报告与具体二进制绑定。文件名可被覆盖哈希能确认用户拿到的是同一产物。大小用于观察依赖和资源增长不作为唯一优化目标。每次正式基线应记录 commit、命令、环境、HAP相对路径、字节和哈希。重新构建若哈希不同可能来自时间戳或非确定打包需要区分可重复构建与内容一致。UnitTestBuildhvigorw UnitTestBuild\--modemodule\-pproductdefault\-pmoduleentrydefault\-pbuildModetest\-punitTestModetrue\--no-daemon该任务编译测试代码和依赖捕获 ArkTS类型、Hypium引用和测试资源问题。它不代表设备执行4/4报告必须单列。测试模块声明2in1让目标类型与 PC优先策略一致。未来 phone只是兼容不应稀释 PC构建门禁。构建产物安全检查Web index不引用 CDNArkWeb关闭 file、online image、geolocation和 DOM storageRelease无 sourcemap。HAP还应进一步扫描意外密钥、绝对路径、调试日志、测试 fixture、source map和未使用资源。依赖许可证与 SBOM是做大后的必要交付项。package-lock和 oh-package-lock应进入版本管理构建报告记录依赖版本。鸿蒙 PC Release 版本下图来自 MateBook Pro 2in1模拟器中的构建基线。ArkUI外壳和离线 Web编辑器来自同一 HAP构建链。截图证明应用可运行不证明签名和商店发布。HAP哈希、构建日志、自动化和设备行为共同形成交付证据。包体增长管理单 HTML包含 CodeMirror、markdown-it、DOMPurify和 CSS是主要资源之一。新增插件前记录 HAP与 index.html差值。chunkSizeWarningLimit只是构建警告阈值不是产品预算。可建立预算Web资源、HAP总大小、冷启动时间和内存共同评估。为了减几十 KB删除安全净化库是错误优化先分析 source map、重复依赖和未用语言包。可重复构建真正可重复需要固定 Node、npm、DevEco、SDK、Hvigor、系统环境与 lockfile。当前脚本固定路径和依赖锁但尚未证明两次构建字节哈希完全一致。HAP元数据可能含时间。可先比较解包后业务文件哈希确认内容一致再研究打包时间戳归一。不要在没有验证时宣称 reproducible build。交付前门禁Release候选至少需要Web 20/20、ohosTest 4/4、Debug/Release/UnitTestBuild成功、diff检查、模拟器主链、HAP大小与哈希、安全扫描、签名验证和 Alpha退出条件。当前签名、远程 CI和内部试用未完成所以仍是工程基线而非正式发布。当前边界无发布签名混淆关闭原生构建只在本机 macOS未生成 SBOM未验证字节级可重复构建没有自动上传产物和发布渠道。API 24之外兼容矩阵尚未建立。产物回溯规则每个准备交付的 HAP应配套一个本地清单记录 Git提交、工作区是否干净、Web lockfile哈希、oh-package lockfile哈希、DevEco版本、SDK版本、构建模式、文件字节和 SHA-256。若工作区存在未提交代码产物不能只绑定 HEAD因为二进制可能包含无法从仓库重建的修改。清单还应记录验证报告路径和模拟器目标不把测试截图塞进 HAP。以后引入自动发布时流水线从同一 commit生成清单和 artifact下载页面显示哈希。用户反馈问题时先收集应用版本和构建 id不要求用户上传文档。Release目录中的旧 HAP应在新构建前清理或按 commit归档避免人工拿错文件。文件名包含 product、module、mode仍不够区分两次构建哈希才是最终身份。结语OhMarkdown构建链先把 Web变成离线单 HTML再由 Hvigor按 API 24组装 Debug、Release和测试目标。脚本固定环境与顺序最终 unsigned HAP记录大小和 SHA-256同时明确它不是签名发布包。鸿蒙 PC应用的交付质量来自可重复命令和可核对产物而不是 DevEco里一次成功运行。把构建、测试、签名和发布逐层命名才能让后续团队与渠道建立可靠流程。
企业数字化 ERP 产品动态
相关推荐
Codex实战:用AI生成Python游戏代码的人机协作模式探索 那天下午,我盯着屏幕上的几行 Python 代码,突然意识到一件事:我们可能正在经历编程方式的一次根本性转变。事情是这样的,我在 GitHub 上看到一个 OpenAI 前员工用 Codex 快速构建了一个小游戏——不是那种简单的猜数字游戏&#x… · 2026/11/13 18:18:41
大语言模型越狱攻击与防御:GLM 5.2安全机制深度解析 在实际 AI 安全研究和模型对抗测试中,越狱攻击(Jailbreak Attack)一直是衡量大语言模型(LLM)鲁棒性的关键挑战。所谓越狱,即通过特定构造的提示词绕过模型内置的安全护栏,诱导模型输出原本被限制… · 2026/11/13 18:18:40
鸿蒙 PC Markdown 编辑器 GFM 渲染:表格、删除线、自动链接与任务列表 鸿蒙 PC Markdown 编辑器 GFM 渲染:表格、删除线、自动链接与任务列表
Markdown 预览并不是把井号替换成标题标签。桌面用户从 GitHub、GitCode 和团队文档仓库带来的文件,通常包含表格、删除线、裸 URL 和任务列表;如果编辑器只支持最小语法… · 2026/10/30 3:04:23
特种工有哪些分类怎么报名 实操考试心里没底怕挂科 特种工有哪些分类怎么报名 实操考试心里没底怕挂科 你不是一个人,很多特种作业证的报考者都担心实操考试过不了,怕挂科影响工作。特别是像安阳这样的建筑工地,特种工的岗位职责明确,考不过证就等于不能上岗,心里没底很正常。但你知道特种工有哪些分类吗… · 2026/11/13 18:17:59
酒店需要电工证怎么考?外省证能转吗?含金量到底如何? 酒店需要电工证怎么考?外省证能转吗?含金量到底如何? 之前考的证在外省能不能转过来?这是很多酒店从业者最关心的问题,尤其是像你这种在焦作从事房建工程的朋友,手里拿着外地的电工证,但到了河南就用不上了,不仅影响工作,还担心证书的 含金量… · 2026/11/13 18:17:59
连州电工证报考全流程指南,官方回应考不过怎么退费? 连州电工证报考全流程指南,官方回应考不过怎么退费? 怕考不过白交培训费?别急,连州电工证报考其实没你想的那么难。但如果你没搞清楚流程、没找对机构,确实容易踩坑。我之前在漯河房建工程干了几年,就亲眼见过不少同事因为没搞懂电工证的报考和复审要求… · 2026/11/13 18:17:59
考一个高压电工证价格复审延期怎么办理 高压电工证价格揭秘:在哪考最靠谱?南阳从业者必看! 证书过期了不知道怎么复审延期?别急,我来告诉你怎么解决,还顺便帮你搞懂【考一个高压电工证价格】和【在哪考】的问题,看完你就明白该怎么做。… · 2026/11/13 18:17:59
特种作业操作证每1年保姆级教程:外省证书怎么转?全在这篇讲透了 特种作业操作证每1年保姆级教程:外省证书怎么转?全在这篇讲透了 之前考的证在外省能不能转过来?我猜你也是这样,明明已经在老家考了证,但工作又在外地,想转过来却发现流程复杂、信息不透明,还怕出错。别急,这篇保姆级教程就专门为你解决这个问题,从… · 2026/11/13 18:17:58
水富市电工证机构怎么找?电子证书过期了别慌 水富市电工证机构怎么找?电子证书过期了别慌 证书过期了不知道怎么复审延期?别急,水富市电工证机构的流程其实不难,关键是找对地方、了解清楚。现在很多人都用电子证书,但一旦过期,很多人都不知道该怎么办,甚至因此影响工作。下面我们就一步步讲清楚。… · 2026/11/13 18:16:58
电工证丢失还能补吗?千万别踩坑,丢了证等于失业 电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。… · 2026/11/12 14:09:01
电力电缆作业证直播报名入口与办理流程良心建议 电力电缆作业证直播报名入口与办理流程良心建议 你是不是也担心学历不高报不了名?别急,今天就给你讲讲 电力电缆作业证直播 的报名流程和那些你必须知道的干货, 良心建议 在这里,别错过。 电力电缆作业证直播报名需要什么条件?… · 2026/11/13 5:40:45
英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 怕考不过白交培训费?英德电工证报考费多少钱,你真的了解吗?现在市面上培训机构五花八门,价格参差不齐,很多人一不小心就花了冤枉钱,结果还考不过。别急,今天就来给你说清楚英德电工证的… · 2026/11/12 23:27:43
维修电公用考电工证吗 在哪考最靠谱 维修电公用考电工证吗 在哪考最靠谱 工地太忙根本没时间复习考试,你是维修电工,天天在项目上跑,连抽个空背个题都难。那问题来了—— 维修电公用考电工证吗 ?答案是: 必须考 。尤其是在当前施工行业,没有电工证,连进场都可能被拦下。而且,… · 2026/11/13 0:00:08
电工证是不是可以登高?含金量和证书范围你必须知道的事 电工证是不是可以登高?含金量和证书范围你必须知道的事 证书过期了不知道怎么复审延期,这事儿很多人遇到过,尤其是像你这样在郑州金水区做劳务班组负责人,手里握着几十个工人的证书,稍微一疏忽,就可能影响工程进度和公司信誉。特别是电工证是不是可以登… · 2026/11/13 0:00:08
鸡西电工证哪家下证快官方报名入口怎么找 鸡西电工证哪家下证快官方报名入口怎么找 你是不是也担心 学历不高怕报不上名 ?别急,今天我就来跟你说说, 鸡西电工证哪家下证快 ,还有 官方报名入口 到底怎么找,别让那些“代办”“代考”耽误了你的机会。… · 2026/11/13 0:00:08
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/13 6:12:21
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/13 6:11:51
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/12 21:15:21