跳转到正文

English core guides · 历史记录保留中文

开发交付包 ​

这是供自用验证的源码交付包,复用新站生成器。当前仍为模板 0.3,交付状态为开发阶段;两个真实独立产品、真实服务和生产运行验收仍按 I16 原计划推进。

从已提交代码打包 ​

在模板或生成产品的 Git 仓库根目录运行。需要 Bun、Git 和 tar,工作区中应提交的变更必须先提交;忽略的本地配置不会进入交付包。

sh
bun site:package .local/distribution/my-tool --name "My Tool" --domain https://my-tool.example --port 6700

输出目录必须不存在。失败时只清理本次新建的输出目录,已有交付目录不会被覆盖。打包从当前提交的 Git 归档读取源码,再交给原生成器重置站点名称、品牌、资源标识与本地端口;不执行安装、数据库迁移或部署。

目录中有两个文件:

文件用途
product.tar.gz一个 project/ 目录,包含独立产品源码、配置示例、中文教程与保留的许可证
manifest.json最后写入的完成清单:来源提交、模板来源、产品身份、归档和每个源码文件的字节数 / SHA-256,以及各工作区直接声明的依赖

官网源码与案例、Git 历史、私有环境文件、本地数据、邮件捕获、依赖目录和构建产物均不分发。生成器过滤规则统一维护,打包脚本不再维护另一份产品复制清单。交付源码中的符号链接及控制字符文件名会拒绝。

sourceRevision 表示本次打包读取的确切提交。template.revision 表示产品沿用的模板来源;产品经过自己的提交后,两者可以不同。生成时间会变化,每次归档也可能不同,清单用于校验收到的这一份交付包。

校验与安装 ​

保留交付包和清单在同一目录,在模板仓库执行:

sh
bun site:package .local/distribution/my-tool --verify

此命令只检查清单中的归档文件名、字节数和 SHA-256,不解压或运行源码。它用于发现文件损坏,不能认证作者身份,也不会逐个比对归档内文件;逐文件摘要可用于解压后的单独核查。

在新的空目录解压,随后进入 project/:

sh
tar -xzf /absolute/path/my-tool/product.tar.gz
cd project
bun install

首次安装要使用 bun install:生成器移除了官网工作区,安装会据本产品工作区更新 bun.lock。建立产品自己的 Git 仓库并提交更新后的锁文件,之后才使用 bun install --frozen-lockfile。仓库不随包分发,不会继承原站远程地址。

按 README.md 和复制新站配置独立数据库、新认证密钥与资源。敏感值仅放 .env.local 或对应环境的 Secrets。未启用的外部模块保持关闭;示例域名、资源编号和服务变量需要分别核对。

sh
bun config:check
bun preview:build
bun preview:start

本地预览需要先完成该站的数据库准备;安装与打包不会替你执行迁移。生产服务按部署教程配置并独立验收。

依赖与许可记录 ​

workspaces 记录交付源码中各 package.json 的直接依赖声明,包括开发、可选和同伴依赖。版本范围原样保存;这不是安装后的准确版本清单、全部传递依赖清单或完整许可证审计。实际解析以本产品安装后提交的 bun.lock 为准。

安装完成后,在本产品仓库导出两种范围的依赖报告。输出文件必须不存在,旧报告不会被覆盖:

sh
bun site:dependencies .local/dependencies-all.json
bun site:dependencies .local/dependencies-production.json --production

此入口调用 Bun 自带的 pm licenses --json,记录其返回的包名、准确版本、许可标签与分组,并移除报告中的本机安装路径、作者、描述和主页。报告另含当前 bun.lock 的 SHA-256、Bun 版本、系统 / 架构、时间与范围;读取过程中锁文件改变会拒绝导出。它不安装依赖、不改锁文件,也不执行包脚本、迁移或部署。

all 包含开发和构建依赖,production 是 Bun 的生产依赖图,两者都不是最终 Worker 或浏览器构建产物的组成清单。报告依赖当前安装及平台条件,不能用本机结果代替其他平台;先完成安装并提交本产品的锁文件,报告摘要应与这份锁文件对应。未安装的产品不会自动补装。

reportedLicense 是 Bun 返回的标签,缺字段保留为 null,Unknown 也原样保留,不能据此判断授权。此次本地样本中 khroma@2.1.0 报为 Unknown:其 package.json 没有许可字段,但随包的小写 license 文件标明 MIT。核查时要读实际原文、保留适用声明,并区分源码、二进制和素材;不能直接把所有依赖统一标为 MIT,也不能把包元数据缺失当作没有许可。

导出的报告可以作为同版本交付的附加核查资料。它是在产品安装后生成的独立文件,不属于原压缩包摘要清单;也不会自动扩写 THIRD-PARTY-NOTICES.md 或改变未知标签。

LICENSE 和 THIRD-PARTY-NOTICES.md 保留原内容,清单记录它们的摘要。第三方说明覆盖现有上游代码、设计系统、字体及补丁来源;新增代码、素材和供应商需继续核对其来源与条款,不能用依赖声明替代这一步。

维护升级按模板版本与升级操作,核对产品自定义代码、完整迁移历史与自己的备份。交付包不包含旧模板的 Git 历史,历史升级演练需要在拥有基线提交的模板仓库运行。

常见问题 ​

现象处理
提示工作区未提交提交需要交付的代码;不把真实凭据提交进仓库
提示输出目录已存在选择新的交付目录;保留旧包用于核对来源
字节数或摘要不符重新取得原包和对应清单,再校验;不要直接继续安装
首次冻结安装失败使用普通安装更新生成产品的锁文件,再提交本产品的锁文件
原账号或原文件没有出现新产品使用独立数据库,本包不复制旧站数据;已有站升级使用升级教程

本地验收覆盖实际归档 / 解压、逐文件摘要、许可证原文、私有文件排除、再次生成,以及破损归档、已有目录、未提交源码和源码符号链接的拒绝。从已提交版本生成的实际产品包已通过首次安装、冻结锁文件再安装、离线配置检查,以及公开页、工作台、邮件和中文文档构建;没有执行数据库迁移或云部署。销售价格、授权方案、购买流程、支持范围和正式发布另行确定。

供语言模型读取:llms.txt · llms-full.txt
采用 MIT 许可证。