manifest.config.ts
应用 manifest.json 配置入口
src/manifest.config.ts 用来描述应用配置,它的结构对应 UniApp 的 manifest.json。
职责
manifest.config.ts 用于表达"应用层面的 manifest.json 配置差异",比如 name、appid、各平台差异化配置(app-plus、mp-weixin 等)。
通常它会与内置默认预设(与 uni-app 官方预设一致)合并,最终生成 src/manifest.json。
约定
- 推荐使用
defineManifestConfig()导出配置,以获得完整 TypeScript 类型提示 - 只写需要覆盖的键,未写的内容由默认预设兜底,不用手写完整
manifest.json - 支持在配置中直接读取环境变量(
.env与.env.<模式>会被自动加载)
结构示意(表达形状,不展开流程):
src/manifest.config.ts
import { defineManifestConfig } from "@skiyee/oiyo/config";
export default defineManifestConfig({
name: "我的应用",
appid: "__UNI__XXXXXX",
// 平台配置:只写需要覆盖的键
"mp-weixin": {
appid: "wx1234567890",
},
});
Oiyo 会在 oiyo prepare / dev / build 时自动同步该配置(dev 模式下 watch 热更新)。
边界
src/manifest.json 是由 Oiyo 生成/维护的产物文件,不要手动更改 manifest.json,直接更改 manifest.config.ts 就行。
export default defineManifestConfig({
// 反例:数组键是整体覆盖而不是追加
// 比如自定义 android 权限时,必须写完整列表
"app-plus": {
distribute: {
android: {
permissions: [
'<uses-permission android:name="android.permission.CAMERA"/>',
],
},
},
},
});
数组键(如 distribute.android.permissions)一旦在配置中出现,就会完整替换默认数组而不是拼接;写空数组则表示显式清空。恢复默认的做法是:把对应键从 manifest.config.ts 中删掉。
该
manifest.config.ts 与 manifest.json 形成映射的关系,manifest.json 是由 Oiyo 生成/维护的产物文件,不要手动更改 manifest.json,直接更改 manifest.config.ts 就行。项目中不存在 manifest.config.* 时,manifest.json 不会被创建或修改,手写的 json 保持原样。