Files
2026-09-09 14:47:29 +08:00

29 lines
2.6 KiB
Markdown

# 唐侦探原生页面接入
`native/tang-detective/` 是原生微信页面、数据和素材的原字节快照。原 `app.js` 和 `sitemap.json` 不导入;`app.json` 仅用作构建元数据,`app.wxss` 输出为游戏页面局部导入的 `shared.wxss`。不要直接修改快照。源文件哈希登记在 `tang-detective-source-manifest.json`。
`tang-detective-native-plugin.mjs` 仅在微信构建启用。它以 `writeBundle: { order: 'post', sequential: true }` 在 uni 产物生成后完成以下工作,监听重建时同样执行:
1. 将原页面和分包输出到 `tang-detective/` 命名空间,修改本地绝对路径、动态分包根及路径白名单。
2. 给 24 个页面补齐横屏、自定义导航配置和局部共享样式。
3. 逐字节覆盖 `native-adapter/tang-detective/` 的适配文件;适配文件必须写最终输出路径,不进行第二次路径替换。
4. 将全部页面的唯一顶层 `Page({` 注册转换为相对引入根 `utils/tangPage.js` 的调用;由适配层负责账号存档初始化。适配页面保留原 `Page({` 写法。
5. 根据 `vite.config.ts` 传入的 `API_BASE_URL` 生成 CommonJS `utils/platformConfig.js`。不读取密钥和原应用入口。
6. 增量合并宿主 `app.json` 的页面、分包和预加载;不覆盖宿主 `app.js`、全局样式、工程配置和其他页面。
适配层不能替换媒体、应用入口或导入状态。`.native-import-state.json` 记录输出文件归属和哈希;只删除清单内且未经外部修改的过期文件,避免误删用户文件。它不会清理其他命名空间。
运行检查:
```sh
node --test build/tang-detective-native-plugin.test.mjs
npm run build:mp-weixin
node build/validate-tang-detective-output.mjs
```
静态测试覆盖 473 份源文件哈希、204 份媒体、24 个原生页面、120 张章节画页的实际图片选择、第一章两个播放器的包内资源、全部相对模块依赖、重复构建、宿主文件保护与适配文件保护。构建后校验脚本进一步检查当前真实产物并输出各包原始文件字节数。
静态导入不代表微信原生 WXML 编译、模拟器/真机播放、包体积验收或上传通过。原生全量内容约 28.6 MiB,接入会增加主包内容,必须保留实际体积报告。H5 构建不会包含原生页面;完整 H5 体验需要独立页面适配,不能据此声称跨端可玩。
如需刷新快照,先核对来源变化,再运行 `node build/import-tang-detective-native.mjs <源 miniprogram 目录>`。脚本遇到已存在但哈希不同的文件会停止,避免无提示覆盖已有快照;差异更新需要单独审查。