生成、加密与登记
区分普通开发者交付与授权发行环境的操作。
本页目录
先区分三种交付物#
| 交付物 | 用途 | 交给谁 |
|---|---|---|
| 开发源码目录 / ZIP | 阅读、编辑、逻辑和桌面测试 | 开发者与维护者 |
| 发行准备目录 | 与目标运行时匹配的准备内容和元数据 | 授权发行环境 |
| 正式加密组件包 | 在正式宿主中导入、校验和运行 | 最终用户 |
普通开发者完成源码与测试,不需要持有服务器密钥或发行私钥。正式打包、签名与发布登记由具备授权的发行方完成。
开发者提交什么#
- 清晰的组件源码目录及 manifest,ID、版本、类别保持一致。
- 功能说明、支持格式、输入与输出位置、模型或工具依赖。
- 最低宿主版本,以及实际测试过的宿主和系统组合。
- 自动化测试结果、桌面验收记录和可以公开的最小示例输入。
- 本次变更说明、旧项目兼容与迁移策略。
- 图标和资源的合法使用信息,以及需要的发行授权范围。
不要把测试账号、日志、缓存、真实调用凭证、私钥或完整用户项目混进源码交付。
授权发行方的准备操作#
以下命令在对应的授权维护环境、宿主项目根目录中执行。准备目录位于组件源码以外,并使用独立的新目录:
node scripts/prepare-component.cjs "D:/dev/my-example-task" "D:/release/prepared/my-example-task"该工具使用项目 Electron 运行时处理源码,并生成 mrite-component-runtime.json 等发行元数据。它不是普通 ZIP 压缩命令;涉及后端字节码时,必须与目标运行环境匹配。
当前准备工具会跳过点开头目录、node_modules 以及部分密钥、映射等文件;这不是完整内容审计。仍需人工核对准备目录,尤其不能把不必要的大文件和本地配置带入正式包。
生成分类加密包#
准备与核对完成后,由已配置发行权限和连接方式的维护者执行:
# category: task
node scripts/component-publisher.cjs package "D:/release/prepared/my-example-task" "D:/release/my-example-task-1.0.0.mrite-task"
# category: tool
node scripts/component-publisher.cjs package "D:/release/prepared/my-example-tool" "D:/release/my-example-tool-1.0.0.mrite-component"示例是两种类别的替代命令,不是要求为同一个组件各生成一份。先创建输出父目录,确认使用的准备目录和扩展名与清单类别一致。
当前工具会登记组件描述、加密内容、取得签名并核对生成文件。发行权和服务器连接由维护环境管理;普通开发者不能只在自己的机器安装一个 npm 包就获得该权限。
授权范围和发布状态#
当前工具的内部 packagePrepared 支持 scope 和 changelog 等发行选项,但上面的简化 CLI 并未提供任意范围的命令行参数。需要基础版、专业版或指定版本等限制时,维护者应使用配套发行入口或实际支持这些字段的调用,不能凭空添加不存在的 CLI 旗标。
登记内容应与当前要分发的文件一致,记录 release ID、组件 ID、版本、类别、摘要、大小和宿主要求。状态从准备、可发布到正式发布,按当前后台支持的操作完成,不修改数据库或同名覆盖来绕开校验。
生成后核对什么#
- 本地文件摘要与登记记录一致。
- task / tool 类别、最低宿主版本和运行元数据准确。
- 包中只有运行需要的文件,未携带测试和敏感资料。
- 发行范围符合业务要求,不把本次简化命令的默认范围误当成定制范围。
- 记录的是本次最终文件,没有在登记后再次修改内容。
进入上线验收#
将最终包交给独立测试环境,按发布与上线验收验证。不要因为命令没有报错,就跳过正式宿主导入、合法授权、失败提示和旧版本更新测试。