注意事项
-
微信小程序每个分包的大小是2M,总体积一共不能超过16M。
-
百度小程序每个分包的大小是2M,总体积一共不能超过8M。
-
支付宝小程序每个分包的大小是2M,总体积一共不能超过4M。
-
QQ小程序每个分包的大小是2M,总体积一共不能超过24M。
-
分包下支持独立的
static
目录,用来对静态资源进行分包。 -
uni-app
内支持对微信小程序、QQ小程序、百度小程序分包优化,即将静态资源或者js文件放入分包内不占用主包大小。详情请参考:关于分包优化的说明 -
subPackages
里的pages的路径是root
下的相对路径,不是全路径。 -
针对
vendor.js
过大的情况可以使用运行时压缩代码
-
HBuilderX
创建的项目勾选运行-->运行到小程序模拟器-->运行时是否压缩代码
-
cli
创建的项目可以在pacakge.json
中添加参数--minimize
,示例:"dev:mp-weixin": "cross-env NODE_ENV=development UNI_PLATFORM=mp-weixin vue-cli-service uni-build --watch --minimize"
官方有支持的分包优化
-
在对应平台的配置下添加
"optimization":{"subPackages":true}
开启分包优化 -
目前只支持
mp-weixin
、mp-qq
、mp-baidu
的分包优化 -
分包优化具体逻辑:
-
静态文件:分包下支持 static 等静态资源拷贝,即分包目录内放置的静态资源不会被打包到主包中,也不可在主包中使用
-
js文件:当某个 js 仅被一个分包引用时,该 js 会被打包到该分包内,否则仍打到主包(即被主包引用,或被超过 1 个分包引用)
-
自定义组件:若某个自定义组件仅被一个分包引用时,且未放入到分包内,
编译时会输出提示信息。
-
-
-
//在微信小程序中如果你的项目不是太大,页面不是太多最好不要去分包
//微信小程序规定每个包不能超过2M
//首先在pages同级创建分包 mypages 然后把你想分开的页面放在子包mypages里
//在pages.json中写好路由
//分包的页面
{
"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
{
"path": "pages/home/yydhome",
"style": {
"navigationBarTitleText": "房东",
"navigationStyle": "custom"
}
},{
"path": "pages/userlogin/login",
"style": {
"navigationBarTitleText": "登录",
"navigationStyle": "custom"
}
}
],
//分包的页面
"subPackages" :[{
"root": "mypages",
"pages":[
{
"path": "pages/waterElectricPrice/waterElectricPrice",
"style": {
"navigationBarTitleText": "水电价",
"navigationStyle": "custom"
}
},{
"path": "pages/roomdetail/roomdetail",
"style": {
"navigationBarTitleText": "房间详情",
"navigationStyle": "custom"
}
}
]
}],
//跳转还是正常跳转只是路径变化了而已
uni.navigateTo({
url: '/mypages/pages/roomdetail/roomdetail'
})
//如果不是太大建议把图片放在网络路径来减少项目大小