主题
app.json
app.json 是小程序全局配置文件,用于配置小程序的一些全局属性和页面路由。
json
{
// 页面路径列表
"pages": ["pages/index/index", "pages/logs/index"],
// 分包结构配置
"subpackages": [
{
"name": "subpackage",
"root": "subpackage",
"pages": ["pages/subpage/index"]
}
],
// 分包预下载规则
"preloadRule": {
"pages/index/index": {
"network": "wifi",
"packages": ["subpackage"]
}
},
// 全局的默认窗口表现
"window": {
"navigationBarTitleText": "Demo"
},
// 底部 tab 栏的表现
"tabBar": {
"list": [
{
"pagePath": "pages/index/index",
"text": "首页"
},
{
"pagePath": "pages/logs/index",
"text": "日志"
}
]
},
// 指定使用升级后的weui样式
"style": "v2",
// 是否开启 debug 模式,默认关闭
"debug": true
}entryPagePath
指定小程序的默认启动路径(首页),常见情景是从微信聊天列表页下拉启动、小程序列表启动等。如果不填,将默认为 pages 列表的第一项。不支持带页面路径参数。
json
{
"entryPagePath": "pages/index/index"
}pages
pages 是一个数组,指定了小程序的页面路径。
json
{
"pages": ["pages/index/index", "pages/logs/index"]
}subpackages
subpackages 是一个数组,指定了小程序的分包结构。
json
{
"subpackages": [
{
"name": "subpackage",
"root": "subpackage",
"pages": ["pages/subpage/index"]
}
]
}preloadRule
preloadRule 是一个对象,指定了分包预下载规则。
json
{
"preloadRule": {
"pages/index/index": {
"network": "wifi",
"packages": ["subpackage"]
}
}
}window
window 是一个对象,用于设置小程序的状态栏、导航条、标题、窗口背景色。
json
{
"window": {
"navigationBarTitleText": "Demo"
}
}tabBar
tabBar 是一个对象,如果小程序是一个多 tab 应用(客户端窗口的底部或顶部有 tab 栏可以切换页面),可以通过 tabBar 配置项指定 tab 栏的表现,以及 tab 切换时显示的对应页面。
如果需要自定义 tabBar,参考 custom-tab-bar。
json
{
"tabBar": {
"list": [
{
"pagePath": "pages/index/index",
"text": "首页",
"iconPath": "assets/home.png",
"selectedIconPath": "assets/home_active.png"
},
{
"pagePath": "pages/logs/index",
"text": "日志",
"iconPath": "assets/logs.png",
"selectedIconPath": "assets/logs_active.png"
}
]
}
}style
style 是一个字符串,指定了使用升级后的 weui 样式。
json
{
"style": "v2"
}一般会删除 app.json 中的 style 字段,使用默认样式。
requiredPrivateInfos
requiredPrivateInfos 是一个数组,指定了小程序需要获取的用户隐私信息类型。
json
/* prettier-ignore */
{
"requiredPrivateInfos": [
"getLocation",
"onLocationChange",
"startLocationUpdateBackground",
"chooseAddress"
]
}注:若使用以上接口,均需在小程序管理后台,「开发」-「开发管理」-「接口设置」中自助开通该接口权限。
permission
permission 是一个对象,指定了小程序需要获取的用户权限。
json
{
"permission": {
"scope.userLocation": {
"desc": "你的位置信息将用于小程序位置接口的效果展示" // 高速公路行驶持续后台定位
}
}
}resolveAlias
使用 resolveAlias 配置项用来自定义模块路径的映射规则。
如果命中多条映射规则,则取最长的命中规则。
json
{
"resolveAlias": {
"~/*": "/*",
"~/origin/*": "origin/*",
"@utils/*": "utils/*",
"subBUtils/*": "subpackageB/utils/*"
}
}注意:
resolveAlias进行的是路径匹配,其中的 key 和 value 须以/*结尾。配置了上述路径映射规则,会做如下匹配并转换:
~/mod.js->mod.js~/origin/mod.js->origin/mod.js@utils/mod.js->utils/mod.jssubBUtils/mod.js->subpackageB/utils/mod.js
如果在
project.config.json中指定了miniprogramRoot,则/*指代的根目录是miniprogramRoot对应的路径,而不是开发者工具项目的根目录
