微信小程序的很多开发需求都被规定在了配置文件中。
全局配置 app.json
:
小程序根目录下的 app.json
文件用来对微信小程序进行全局配置,决定页面文件的路径、窗口表现、底部 tab 栏等。
小程序中的所有页面,都需要在 pages 属性中指定。
如果没有指定 entryPagePath,pages 数组的第一项就代表小程序的初始页面。
在pages
目录下新建的页面会被自动写入到app.json
文件的pages
属性下;会根据app.json
文件的pages
属性下写入的页面路径自动创建新的文件到pages
目录下。
页面配置 page.json
:
每一个小程序页面也可以使用同名 .json
文件来对本页面的表现进行配置。页面中的配置项在当前页面会覆盖 app.json
中相同的配置项。
并不是所有 app.json 中的配置都可以在页面覆盖或单独指定。
sitemap 配置 sitemap.json
:
小程序根目录下的 sitemap.json
文件用来配置小程序及其页面是否允许被微信索引。当开发者允许微信索引时,微信会通过爬虫的形式,为小程序的页面内容建立索引,当用户的搜索词条触发该索引时,小程序的页面将可能展示在搜索结果中。 文件内容为一个 JSON 对象。
开发者可以通过 sitemap.json
配置或者 小程序管理后台-功能-页面内容接入-页面收录开关
来配置其小程序页面是否允许微信索引。
如果没有
sitemap.json
,则默认为所有页面都允许被索引。
爬虫访问小程序内页面时,会携带特定的 user-agent:mpcrawler 及场景值:1129。
// 所有页面都会被微信索引(默认情况):
{
"rules":[{
"action": "allow",
"page": "*"
}]
}
// path/to/page 页面不被索引,其余页面允许被索引
{
"rules":[{
"action": "disallow",
"page": "path/to/page"
}]
}
// path/to/page 页面被索引,其余页面不被索引
{
"rules":[{
"action": "allow",
"page": "path/to/page"
}, {
"action": "disallow",
"page": "*"
}]
}
// 包含 a 和 b 参数的 path/to/page 页面会被微信优先索引,其他页面都会被索引
// 例如:path/to/page?a=1&b=2 => 优先索引;path/to/page?a=1&b=2&c=3 => 优先索引;path/to/page => 不被索引;path/to/page?a=1 => 不被索引;其他页面都会被索引
{
"rules":[{
"action": "allow",
"page": "path/to/page",
"params": ["a", "b"],
"matching": "inclusive"
}, {
"action": "allow",
"page": "*"
}]
}
工具配置 project.config.json
:
小程序根目录下的 project.config.json
文件用来对项目(例如项目名称、APPID、基础库版本等)和开发者工具进行配置。可以在 project.config.json
文件中配置同事们共同的配置,在 project.private.config.json
配置个人私有的配置,一般情况下要将 project.private.config.json
写到 .gitignore
避免版本管理的冲突。
在微信开发者工具上做的任何配置都会写入到
project.config.json
文件中,当重新安装工具或者更换电脑工作时,只要载入同一个项目的代码包,开发者工具就会自动恢复到当时开发项目时的个性化配置。
project.private.config.json
中的相同设置优先级高于project.config.json
。