manifest.json
是 UniApp 项目的核心配置文件,用于定义小程序的全局属性、权限、平台适配等信息。以下是其具体作用及关键配置项:
一、核心作用
-
基础配置
- 应用名称:定义小程序在手机端显示的标题。
- AppID:关联微信小程序开发者账号的唯一标识(必填)。
- 版本号:控制小程序的更新逻辑和版本管理。
-
多平台适配
针对不同平台(微信、支付宝、H5 等)设置差异化参数,例如:- 微信小程序:配置
networkTimeout
(网络超时时间)、permission
(地理位置/摄像头权限)。 - H5 端:设置
router
(路由模式)、title
(页面标题)。
- 微信小程序:配置
-
模块与权限控制
- 功能模块:声明是否启用支付、地图、蓝牙等能力。
- 权限声明:如
scope.userLocation
(定位权限),需在此预先声明以通过微信审核。
-
代码优化与兼容
- 分包配置:通过
subPackages
分割代码包,提升加载速度。 - 兼容性设置:指定最低基础库版本(
libVersion
),避免低版本用户运行异常。
- 分包配置:通过
二、关键配置示例
{
"name": "MyUniApp", // 应用名称
"appid": "wx1234567890", // 微信小程序 AppID
"versionName": "1.0.0", // 用户可见版本号
"versionCode": "100", // 内部版本号(用于更新判断)
"description": "示例项目", // 应用描述
/* 微信小程序专属配置 */
"mp-weixin": {
"appid": "wx1234567890", // 微信 AppID(覆盖全局配置)
"setting": {
"urlCheck": false, // 关闭域名校验(开发阶段)
"es6": true, // 启用 ES6 转 ES5
"postcss": true // 启用 PostCSS 处理样式
},
"permission": { // 权限声明
"scope.userLocation": {
"desc": "需要获取您的位置以提供导航服务"
}
}
},
/* 通用功能模块配置 */
"modules": {
"Payment": {}, // 启用支付模块
"Map": {} // 启用地图模块
}
}
三、与其他配置文件的区别
文件 | 作用 | 示例配置项 |
---|---|---|
manifest.json | 全局配置:跨平台参数、权限、模块声明等 | AppID、分包、权限、多平台差异配置 |
pages.json | 页面路由、导航栏样式、底部 TabBar 等界面相关配置 | pages (页面路径)、tabBar (底部导航) |
app.vue | 全局 Vue 组件:生命周期、全局样式、数据初始化等 | onLaunch (启动逻辑)、全局 CSS 变量 |
四、常见应用场景
-
多平台开发
通过"mp-weixin"
、"h5"
等平台专属配置,实现不同平台的参数覆盖(如微信中禁用 H5 的特定功能)。 -
权限审核合规
在微信小程序提交审核时,需在manifest.json
中明确声明所需权限(如scope.userLocation
),否则可能被驳回。 -
性能优化
使用subPackages
分包加载,将非首屏代码拆分为独立包,减少主包体积(微信主包限制为 2MB)。 -
调试配置
开发阶段关闭域名校验("urlCheck": false
),避免因未配置 HTTPS 域名导致请求失败。
五、注意事项
- 优先级规则:平台专属配置(如
mp-weixin
)会覆盖全局配置。 - 版本更新:修改
versionCode
可强制用户更新小程序。 - 敏感权限:涉及用户隐私的权限(如摄像头、通讯录)需在配置中写明用途描述(
desc
),否则审核不通过。
通过合理配置 manifest.json
,开发者可以高效管理项目兼容性、功能模块及多平台适配问题。