uni-app 部署发布策略,开发是一套代码,发布不是一条路
uni-app 最吸引人的地方是一套代码可以发布到多个平台。这句话没错。但很多新手会误会成发布也只需要点一个按钮。真不是。H5、小程序、App 的上线方式、审核规则、缓存策略、回滚方式、版本管理都不一样。你在开发阶段享受“统一”在发布阶段必须尊重“差异”。这一篇不追求讲完所有平台规则。我们只把一个商品应用从开发到上线最容易踩的发布问题讲清楚。太长不看版发布前先问四个问题。我要发到哪个平台H5、微信小程序、App还是多个一起发当前构建连接的是开发接口、测试接口还是生产接口平台需要的域名、权限、隐私协议、版本号、证书都配好了吗发出去之后发现问题怎么观察、怎么降级、怎么回滚开发时你可以想“一套代码”。发布时一定要按平台拆开想。这一篇放在系列里的位置如果你还没做上线前检查先看 10-上线前检查清单.md。如果你担心权限和隐私回看 14-安全防护与数据保护.md。如果你还没做真机和异常测试先看 15-测试调试与质量保证.md。这一篇解决的是代码写完以后怎么发出去怎么别把开发环境、错误配置和不可回滚风险一起发出去。先看三条发布路径同一份 uni-app 源码最后会走到不同平台。H5微信小程序Appuni-app 源码构建发布目标生成 Web 静态资源生成小程序项目生成 Android/iOS 安装包服务器或 CDN微信开发者工具上传审核应用市场或企业分发看起来都是“发行”。但每条路要检查的东西不同。发布前先做环境隔离上线事故里有一种特别低级但特别常见。生产包连到了测试接口。或者测试包连到了生产支付。这种问题不靠“我记得改了”来解决。要靠环境配置集中管理。// 文件位置config/env.jsconstconfigs{development:{baseURL:https://dev-api.example.com,enableDebug:true},test:{baseURL:https://test-api.example.com,enableDebug:true},production:{baseURL:https://api.example.com,enableDebug:false}}exportconstappConfigconfigs[process.env.NODE_ENV]||configs.development请求封装里只读配置。// 文件位置utils/request.jsimport{appConfig}from/config/envexportconstrequest(options){returnnewPromise((resolve,reject){uni.request({url:${appConfig.baseURL}${options.url},method:options.method||GET,data:options.data||{},success:resolve,fail:reject})})}关键点是页面不要到处写死接口域名。域名散落在页面里最后一定会有人漏改。H5 发布看资源路径、路由刷新和缓存H5 发布最像普通前端项目。你构建出一批静态文件然后放到服务器、对象存储或 CDN 上。H5 最常见的问题有三个。资源路径错了商品图片、JS、CSS 加载 404页面白屏或样式丢失。如果你的站点部署在子路径比如https://example.com/goods-app/就要确认构建配置里的基础路径是否匹配。发布后打开浏览器 DevTools先看 Network 有没有红色 404。刷新深层页面 404用户直接打开商品详情页或者在详情页刷新。如果服务端没有做好回退配置可能直接 404。能不能用户访问 /goods/detail?id1Web 服务器服务器是否能识别前端路由返回 index.html404如果你用的是前端路由模式要让服务器把未知前端路径回退到index.html。不同服务器配置方式不同但思路一样。CDN 缓存导致旧代码还在你发了新版本但用户看到的还是旧页面。这通常是缓存问题。发布 H5 时建议静态资源文件带 hashHTML 不要缓存太久。这样 JS/CSS 可以长缓存入口 HTML 可以尽快拿到新版本。微信小程序发布看 appid、合法域名、包体积和审核小程序不是把 H5 丢上服务器。它有平台规则。商品应用上线微信小程序前至少检查这些。检查项为什么重要appid错 appid 会发到错误小程序请求合法域名未配置域名时真机请求会失败上传文件域名图片上传也要配置对应域名隐私协议涉及用户信息、相册、位置等能力时必须说明权限用途相机、定位、相册要和功能匹配包体积超限会影响上传或启动体验页面路径分享、跳转、扫码入口要能打开小程序发布一般会经历这样的流程。本地开发微信开发者工具预览真机测试上传体验版提交审核发布线上版本有一点要特别注意。小程序审核是需要时间的。所以如果你上线后才发现重大问题修复节奏不会像 H5 那么自由。上线前的测试和灰度体验就更重要。App 发布看证书、版本号、权限和应用市场规则App 发布比 H5 和小程序更重。你要考虑 Android 和 iOS 的包名、证书、版本号、权限、隐私政策、应用市场审核。最容易被忽略的是版本号。一般会有两个概念。概念用途versionName给用户看的版本比如1.2.0versionCode给系统判断升级顺序的数字比如10200不要只改展示版本不改构建版本。否则应用市场或系统可能判断不出这是一个新包。权限也要克制。如果商品应用只做浏览和发布可能需要相册、相机、网络。除非你真的做“附近商品”否则不要随便申请定位。权限越多审核风险越高用户也越不信任。分包和预加载不是上线前才想起来前面 13-性能优化入门.md 讲过分包和预加载。发布阶段要再核一次。pages.json里可以配置页面、tabBar、subPackages、preloadRule 等。官方文档里也明确preloadRule可以在进入小程序某个页面时预下载可能需要的分包用来提升后续页面启动速度。一个商品应用可以这样理解。主包首页商品列表我的发布分包商品发布图片裁剪订单分包订单列表订单详情不要把所有页面都塞进主包。但也不要为了分包而分包。首页、tabBar、首屏关键页面一般留在主包低频大功能再考虑拆出去。条件编译要集中不要撒满页面发布多端时平台差异不可避免。uni-app 支持条件编译比如#ifdef H5、#ifdef MP-WEIXIN、#ifdef APP-PLUS。官方文档里也提到条件编译可以用于 JS、模板、CSS、pages.json、static 等场景。但条件编译不是越多越好。错误倾向是每个页面都写一堆平台判断。更好的做法是把平台差异封装成方法。// 文件位置utils/platform.jsexportconstgetShareChannel(){// #ifdef MP-WEIXINreturnwechat-mini-program// #endif// #ifdef H5returnh5// #endif// #ifdef APP-PLUSreturnapp// #endifreturnunknown}页面里只调用getShareChannel()。这样以后平台逻辑改了不需要到处找。发布后要观察不要发完就关电脑发布不是最后一步。发布后至少观察这些。页面白屏率。接口错误率。登录失败率。商品发布成功率。图片上传失败率。小程序审核反馈。应用市场崩溃反馈。如果你暂时没有专业监控也可以先做最朴素的发布记录。// 文件位置docs/release-log.md# 发布记录 ## v1.0.0 - 发布时间 - 发布平台 - 构建环境 - 主要改动 - 影响页面 - 回滚方式 - 发布后观察发布记录的价值不在于形式。而是出问题时你能知道这次到底改了什么。回滚和降级要提前想小项目也要有退路。H5 可以回滚到上一版静态资源。小程序可以视情况回退线上版本或重新提交审核。App 如果已经发到市场回滚成本更高所以更需要灰度、版本控制和服务端降级开关。否是能不能发布新版本观察核心指标是否异常继续扩大范围能否前端快速修复补丁或重新发布回滚旧版本或服务端降级如果某个新功能风险高比如商品发布页改了上传流程可以让后端加一个开关异常时先关闭新入口。不要把所有风险都押在重新发包上。这里容易翻车生产包连着测试接口或者测试包连着生产支付。H5 部署到子路径后静态资源 404。深层页面刷新 404以为是前端路由坏了其实是服务器没回退。CDN 缓存没处理用户一直加载旧 JS。小程序忘记配置 request/uploadFile 合法域名。权限申请和实际功能不匹配审核或用户信任出问题。App 只改versionName没改构建版本号。发布后没有观察指标用户反馈了才知道线上坏了。自己试试给项目加一个config/env.js把开发、测试、生产接口地址集中管理。写一份docs/release-log.md发布记录模板。检查manifest.json和pages.json列出当前项目发布到 H5、小程序、App 分别要改哪些配置。模拟一次 H5 发布后回滚写出你会恢复哪一版文件、清哪些缓存、通知谁验证。这一篇先记住什么uni-app 帮你统一了开发体验。但它没有消灭平台发布差异。H5 看资源路径、路由刷新、缓存和回滚。小程序看 appid、合法域名、包体积、隐私协议和审核。App 看证书、版本号、权限、市场规则和升级策略。所有平台都要先做好环境隔离再做发布记录再做发布后观察。上线不是把代码扔出去。上线是把风险有控制地交给真实用户。

相关新闻

ComfyUI-Manager:5步解锁AI工作流无限潜能,你的节点管理烦恼终结了吗?

ComfyUI-Manager:5步解锁AI工作流无限潜能,你的节点管理烦恼终结了吗?

ComfyUI-Manager:5步解锁AI工作流无限潜能,你的节点管理烦恼终结了吗? 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remo…

2026/8/3 9:50:12 阅读更多 →
从50TPS到秒杀:Jmeter性能压测实战与瓶颈分析

从50TPS到秒杀:Jmeter性能压测实战与瓶颈分析

1. 项目概述:从50TPS到秒杀场景的性能压测实战 最近在复盘一个电商项目的性能测试案例,核心指标是要求系统在常规负载下稳定支持50 TPS(每秒事务数),同时还要模拟“秒杀”这种极端高并发场景。这个需求非常典型&#x…

2026/8/3 9:50:12 阅读更多 →
OpenClaw升级安装教程,TopClaw3分钟自动更新满血内核

OpenClaw升级安装教程,TopClaw3分钟自动更新满血内核

升级OpenClaw前,先搞清楚这几点用过OpenClaw的朋友应该都有这种感觉——它确实能干,但每次版本一更新,手动折腾依赖、配置环境、还要担心兼容性问题,真的挺磨人。我之前也踩过不少坑,比如升级到一半报错、旧配置失效、…

2026/8/3 9:49:11 阅读更多 →

最新新闻

图论算法实践:邻接表与最短路径优化

图论算法实践:邻接表与最短路径优化

1. 图论算法:从理论到实践的桥梁第一次接触图论是在大学的数据结构课上,教授在黑板上画了几个圆圈和连线,说这就是"图"。当时觉得这玩意儿能有什么用?直到工作后处理社交网络关系分析时,我才真正体会到图论算…

2026/8/3 11:40:12 阅读更多 →
向日葵MCP协议开发实战:远程控制核心技术解析

向日葵MCP协议开发实战:远程控制核心技术解析

1. 向日葵 MCP 实践指南:远程控制与协议开发的深度解析 远程控制技术在现代办公和IT运维中扮演着越来越重要的角色。作为国内领先的远程控制解决方案,向日葵远程控制软件凭借其稳定性和易用性赢得了大量用户的青睐。而MCP(Media Control Prot…

2026/8/3 11:40:12 阅读更多 →
20260729-1645-mpps

20260729-1645-mpps

[toc]工作日志日期:2026年07月29日 项目:MPPS - 多平台投稿发布系统 作者:Reasonix今日完成发布功能改进多文档选择发布:发布页改为多选文档(checkbox),可选择多篇文档 多平台批量发布定时发布…

2026/8/3 11:40:12 阅读更多 →
今年爆火的AI新概念:Harness Engineering到底是什么?一文看懂

今年爆火的AI新概念:Harness Engineering到底是什么?一文看懂

今年爆火的AI新概念:Harness Engineering到底是什么?一文看懂 你有没有遇到过这种情况—— 花半小时纠正AI的一个错误,在Prompt里写清楚“不要这样做”,第二天开了新会话,AI毫不犹豫地……又犯了同样的错。 换了个更贵…

2026/8/3 11:40:12 阅读更多 →
BilibiliDown:如何一键下载B站高清视频与音频的跨平台神器

BilibiliDown:如何一键下载B站高清视频与音频的跨平台神器

BilibiliDown:如何一键下载B站高清视频与音频的跨平台神器 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirro…

2026/8/3 11:40:11 阅读更多 →
Python实战:豆瓣电影数据采集分析与可视化

Python实战:豆瓣电影数据采集分析与可视化

1. 项目概述"基于Python豆瓣电影数据可视化分析设计与实现"是一个典型的数据分析实战项目,它完整覆盖了从数据采集、清洗到分析可视化的全流程。作为一名长期从事数据分析工作的从业者,我经常使用类似的案例来训练团队的数据处理能力。这个项目…

2026/8/3 11:39:11 阅读更多 →

日新闻

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。…

2026/8/3 0:00:47 阅读更多 →
[具身智能-181]:PC+服务器+具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构

[具身智能-181]:PC+服务器+具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构

PC服务器具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构一、前言:具身智能需要“混合算力闭环系统”传统人工智能依赖云端静态数据集训练,不具备物理交互能力,无法适应真实世界的不确定性。具身智能(Embodied…

2026/8/3 0:00:47 阅读更多 →
[具身智能-181]:大分布式通信模型对比:看懂为什么 DDS 是 ROS2 底层通信最优解

[具身智能-181]:大分布式通信模型对比:看懂为什么 DDS 是 ROS2 底层通信最优解

前言构建机器人、具身智能这类分布式实时系统,通信底座直接决定整套系统的实时性、容错性、组网能力。分布式领域长期存在 4 类经典通信架构:点对点模式、Broker 中间代理模式、广播模式、以数据为中心(DDS)模式。很多开发者疑惑&…

2026/8/3 0:00:47 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/3 4:58:13 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/3 1:53:31 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/3 4:36:35 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/2 6:34:16 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/3 5:19:38 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/3 8:27:36 阅读更多 →