这篇笔记📒主要记录: 微信小程序在本地编译的时候可以,真机预览不行的解决过程。在真机预览的时候,接口不通,我用的是uni-app 云函数请求数据,阿里云存储数据。
结论: 真机预览的时候不可以用本地云函数,一定要把本地云函数上传到云端,本地的schema.json也要上传
微信小程序在本地编译的时候可以,可以正常渲染列表数据,真机预览的时候不行
因为真机的时候没法看接口请求和控制台,于是打算用第三方工具,想着用vconsole
使用vconsole定位原因
安装vconsole,
npm i vconsole
在main.js中引入vconsole, 我用的是vue3版本
// #ifdef VUE3
import { createSSRApp } from "vue";
import VConsole from "vconsole"; // 引入 vConsole
export function createApp() {
const app = createSSRApp(App);
// 仅在开发环境使用 vConsole
if (
process.env.NODE_ENV === "development"
) {
new VConsole(); // 初始化 vConsole
}
return {
app,
};
}
// #endif
安装完了小程序报错,TypeError: Cannot read property 'sendBeacon' of undefined
H5可以正常显示vconsole
vconsole提示未能正常获取当前用户信息,于是就想是不是小程序真机预览的时候没有登录用户,所以获取不到列表数据
先解决安装了vconsole,小程序报错的问题,看来小程序是用不了vconsole, 在main.js上面添加的代码里,加上
process.env.UNI_PLATFORM === "h5"
, 这样只在H5里才有vconsole,小程序不报错了,
// 仅在开发环境使用 vConsole
if (
process.env.NODE_ENV === "development" &&
process.env.UNI_PLATFORM === "h5"
) {
new VConsole(); // 初始化 vConsole
}
根据H5 vconsole的提示错误,我们知道要先登录用户
真机预览的时候我们切换到登录页面,登录用的是uni-id-pages, 结果如下:
提示无法连接uniCloud本地调试服务,请检查当前客户端...
突然想到是不是我用的是, uniCloud本地云函数所以不行,切换到云端云函数,
发现本地编译都不行了,(感觉原因找到了,本地都不行),提示
Error: Invalid uni-id config file
根据报错,我们上传关于用户模块配置的uni-id
文件夹下的config.json文件(点击文件夹右键有上传命令)
竟然提示公共模块uni-config-center被云端函数依赖,正在更新相关云端云函数...
, 说明这个上传绝对是对的,再次编译,发现提示缺少集合对应的schema,
上传所有的表的schema, 有的表上传时候提示要新建一些表,比如uni-id-permissions
再次编译发现可以了,真机预览也可以了
结论:
- 真机预览一定要用云端云函数模式
- 一定要把用到的本地云函数,本地数据库schema.json 都上传到云端,最好都上传,不然可能搞混遗漏
- vconsole小程序不生效,H5可以