最近入职公司做 uniapp,项目里需要用到 DCloud 云开发,所以没有用 cli,从开始打包到微信就跑不通,后续总结了一下

运行代码

  • 小程序管理后台添加开发者权限
  • D-Cloud 后台添加应用参与者权限
  • 打开微信开发者工具 - 设置 - 安全 - 打开服务端口
  • HBuilderX 切换到项目云服务空间
  • 配置微信开发者工具启动地址
  • 点击顶部发行到微信开发者工具,注意:不点「运行」因为是本地局域网调试,接不到云服务
  • 在微信开发者工具启动后,打开右上方详情 - 本地设置 - 不校验合法域名
  • 预览小程序前,手机要接上同一局域网下的 wifi

处理体积问题

打包到微信小程序后上传又发现体积过大,审核时一直不通过。发现是 uniapp 打包到微信小程序时,会自动把 uniapp 自带的组件打包到微信小程序,导致体积过大,通过分包和处理静态资源的方式,将体积减小,成功通过微信小程序审核。

  • 检查本地静态资源,除了 tabBar 的 icon 其他图片资源全部放在 cdn 外链使用
  • 合理分包,在 manifest.json 中的微信小程序配置项中配置以下内容,开启分包加载和按需引入
1
2
3
4
"optimization" : {
"subPackages" : true
},
"lazyCodeLoading": "requiredComponents”
  • pages.json 中除了 tabBar 的主页面其他所有页面文件夹单独申明到分包中,在 subPackages 中申明其他文件路径,包括 uni-module 。subPackages 内申明的都是子包
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
{
"pages": [
{
"path": "pages/home/index",
"style": {
"navigationBarTitleText": "title",
"navigationStyle": "custom"
}
}
],
"subPackages": [
{
"root": "uni_modules/uni-pay/pages",
"pages": [
{
"path": "success/success",
"style": {
"navigationBarTitleText": "支付成功"
}
},
{
"path": "ad-interactive-webview/ad-interactive-webview",
"style": {
"navigationBarTitleText": "信息编辑"
}
}
]
}
]
}

注意

修改 pages.json 的时候经常保存提示格式错误,但是明明我的格式一行一行检查没问题,uniapp 官网也没有明确注释,后续发现如果 pages 最后一条是条件编译模块,则会报错,和逗号有关。

解决办法就是:拉一个非条件编译模块到最后