皓峰通讯
皓峰通讯
  • 发布:2026-03-04 14:59
  • 更新:2026-03-05 11:19
  • 阅读:45

uniapp的vue2升级vue3,相同的页面真机运行没问题,但打包后安装却没显示内容

分类:uni-app

如题,相同的手机,相同的逻辑。真机运行时内容正常显示,但是打包后安装查看内容没显示,有没有人遇到过这种情况,给一些排查思路

2026-03-04 14:59 负责人:无 分享
已邀请:
Ask小助手

Ask小助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

根据你描述的情况:“真机运行正常,但打包后安装无内容显示”,这是 uni-app 升级 Vue2 到 Vue3 后常见的白屏问题,尤其在正式包中更易出现。结合知识库和社区经验,以下是排查思路


✅ 1. 检查是否勾选了必要的 App 模块

参考:app-modules

  • 如果你在代码中使用了如 uni.requestuni.getLocationuni.scanCode 等 API,但未在 manifest.jsonApp模块配置中勾选对应模块,打包后不会报错,但页面不会渲染
  • 真机运行时会有弹窗提示缺失模块,正式包不会提示,直接白屏

建议:逐项检查 manifest.json → App模块配置,确保所有用到的功能模块都已勾选。


✅ 2. 检查是否使用了不兼容的 API 或语法

社区经验:Vue3 升级后,部分 API 在真机调试时兼容,但打包后因 polyfill 或 tree-shaking 被移除,导致白屏。

排查建议

  • 检查是否使用了 require()module.exportsprocess.env 等 CommonJS 语法。
  • 检查是否引用了不兼容的第三方库(如旧版 Vant、Lodash、Moment 等)。
  • 检查是否使用了 plus 对象(Vue3 中不再默认注入)。

✅ 3. 检查是否分包配置不当

参考:对话记录中 DCloud 官方回复

  • Vue3 不会自动拆分 vendor.js所有 node_modules 默认打进主包,可能导致主包过大,低端设备加载失败
  • 如果你使用了分包,但主包仍过大,建议手动将大库拷贝到分包目录,避免主包超限。

✅ 4. 检查是否开启了原生混淆

参考:app-sec-confusion

  • 如果你在 manifest.json 中开启了 原生混淆(js/nvue 加密),但未正确配置白名单,可能导致运行时加载失败
  • 建议先关闭混淆测试是否能正常显示,再逐步开启并配置白名单。

✅ 5. 检查是否使用了未正确配置的原生插件

参考:faq-插件不存在

  • 如果你使用了原生插件(如 uni.requireNativePlugin),但未在打包时勾选插件,真机运行可用(自定义基座),正式包不可用
  • 检查 manifest.json → App原生插件配置 → 是否勾选了对应插件。

✅ 6. 检查是否使用了不兼容的语法或标签

  • Vue3 不再支持 slot="xxx" 写法,需改为 v-slot:xxx
  • 检查是否有 <template> 标签未闭合、<script setup> 使用错误等。

✅ 7. 建议开启调试模式查看日志

  • 使用 自定义基座 打包,开启 vConsoleuni-app 控制台日志,查看是否有报错。
  • 若真机无日志,可尝试使用 adb logcatXcode 控制台 查看原生日志。

✅ 8. 若仍无法定位,建议提供以下信息给官方

  • AppID(用于查看云端打包日志)
  • manifest.json 截图
  • 控制台报错截图(如有)
  • 是否使用自定义基座测试通过

✅ 总结建议

排查项 是否建议优先检查
manifest.json 模块配置 ✅ 高优先级
是否使用不兼容 API ✅ 高优先级
是否分包不当 ✅ 中优先级
是否开启混淆 ✅ 中优先级
是否插件未勾选 ✅ 中优先级
是否语法错误 ✅ 低优先级

如你已确认以上都无误,建议提供 AppID 和打包日志,官方可协助查看云端打包详情。

内容为 AI 生成,仅供参考
皓峰通讯

皓峰通讯 (作者) - 专注于装饰行业的专家企业,市场占有率第一。

自定义基座打包也没有问题,但打正式包就是像图1一样内容不显示

要回复问题请先登录注册