前言


微信小程序的开发语言和上线流程

  微信小程序的开发语言是一套受限 JS + 自研视图层 + JSON 配置封闭技术栈,上线则是代码包上传到微信后台 → 审核 → 发布,而不是传统意义上部署到自己的服务器(后端另算)。


一、开发语言与技术栈

原生小程序(官方栈)

  • WXML(WeiXin Markup Language):类 HTML 的页面结构语言,支持数据绑定、wx:ifwx:for 等指令,不能用 DOM 操作。

  • WXSS(WeiXin Style Sheet):类 CSS,扩展了 rpx 响应式单位(750rpx = 屏幕宽),部分 CSS 选择器受限。

  • JavaScript / TypeScript:逻辑层语言,跑在 JSCore / V8 里,没有 window、document、DOM/BOM,不能用 jQuery 等浏览器库;TS 在官方工具里已原生支持,中大型项目建议直接用 TS。

  • JSONapp.json 管全局路由/tabBar/分包,页面级 .json 管单页配置。

  • WXS:类似简化版 JS,跑在渲染层,用于 WXML 里做轻量计算(如格式化价格)。

逻辑层和渲染层分离是小程序和 Web 最大的区别:逻辑层 JS 在独立线程,渲染层在 WebView,二者通过 Native 通信。

跨端框架(编译到小程序原生)

  • Taro(React/Vue 语法,React 团队友好)

  • uni-app(Vue 语法,插件市场丰富,Vue 团队友好)

  • 它们最终都编译成 WXML/WXSS/JS 再走微信流程,复杂原生能力可能需要写 condition 代码。

后端侧

  • 自有后端:常规 Node/Java/Go + HTTPS 接口,需在公众平台配 request 合法域名(仅 HTTPS、不支持 localhost/IP)。

  • 微信云开发 / 云托管:云函数(Node/Python/Go)、云数据库、云存储、CMS,免运维;云托管还能跑任意容器镜像。

二、开发到上线的完整流程

1. 账号与准备

  • 微信公众平台注册小程序,选个人 / 企业 / 组织主体(企业要做微信认证、开通支付等)

  • 后台「开发 → 开发设置」拿 AppID

  • 配成员权限(开发者、体验者)、配服务器域名(自有后端时才需要)

2. 本地开发

  • 微信开发者工具(Windows/Mac)

  • 用 AppID 新建项目,目录里 app.js/app.json/app.wxss + pages/* 是标准结构

  • 写页面 → 模拟器实时预览 → 真机扫码调试 → 跑 Console/Network/Performance 面板排错

3. 提测(体验版)

  • 开发者工具点「上传」,填版本号+备注 → 进后台「版本管理」变成开发版

  • 后台加体验者微信号 → 体验者微信里能看到体验版二维码

4. 提交审核

  • 体验通过后在后台对该版本点「提交审核」

  • 填功能说明、测试账号、审核截图,特殊类目(电商、医疗、直播等)要传资质

  • 审核一般 1–7 个工作日,被拒按反馈改了重提

5. 发布

  • 审核通过 → 后台点「发布」→ 全量上线

  • 也可选灰度发布(按比例放量),出问题用新版本覆盖(发布后不能回滚到旧包,只能发新版)

6. 企业级 CI/CD(可选但推荐)

手动点上传在团队里会乱,工业做法是:

  • Git 推代码 → CI(GitHub Actions / GitLab CI / Jenkins)跑 lint、单测、包体积检查(主包 ≤ 2MB)

  • miniprogram-ci(命令行,不需开开发者工具)拿上传密钥 + IP 白名单把构建产物传微信后台

  • 用 robot 编号隔离 dev/test/prod 体验版,审核通过后再由人点发布或脚本调开放接口发

三、几个容易踩的坑

  • 包体积:主包 2MB、总包 20MB(含分包),超限必须分包或挪到 CDN/云存储

  • 域名白名单wx.request 必须走配置过的 HTTPS 域名,本地调试可临时关校验但上线不行

  • DOM 思维:别把 Web 项目直接搬过来,凡是操作 DOM 的库都得换

  • 审核被拒高频原因:类目不符、隐私弹窗没接、诱导分享、虚拟支付走错通道

四、实战

📦 交付物一:小程序完整项目(miniprogram-demo.zip)

一个开箱即用的微信小程序云开发项目,包含:

模块内容
首页搜索栏 + 轮播图 + 功能网格 + 文章列表 + 下拉刷新/上拉加载
我的页微信登录 + 用户统计(文章/点赞/关注/粉丝)+ 菜单列表 + 退出登录
详情页(分包)文章详情 + 点赞/收藏/分享 + 评论区
登录页微信一键登录 + 用户协议勾选
3个云函数login(登录)、getBanners(轮播图)、getUserStats(统计)

项目亮点:

  • 演示了云开发模式wx.cloud.database() 直连数据库)和自有后端模式wx.request() 请求 HTTPS 接口)两种写法,注释切换即可

  • 使用了分包加载packageA),主包更轻量

  • 全局样式、通用组件结构清晰,方便二次开发

**使用方法:**​ 解压 → 微信开发者工具导入 → 开通云开发 → 创建集合 → 右键上传云函数 → 运行


📊 交付物二:云开发 vs 自有后端 对照表(comparison-table.html)

用浏览器打开,可看到一份精美的可视化对照表,涵盖 6 大维度:

  1. 基础信息​ — 定位、核心组件对比

  2. 开发体验​ — 上手速度、代码量、调用方式、数据库、认证

  3. 成本与运维​ — 初期成本、运维负担、弹性扩容、隐藏成本

  4. 能力与限制​ — 数据库能力、定时任务、第三方集成、跨平台、数据迁移

  5. 安全​ — 数据安全、防刷限流、合规

  6. 适用场景​ — 最适合 / 不太适合

底部还有决策建议卡片,帮你快速判断该选哪种方案。


💡 核心结论速记

小项目 / 快速验证​ → 云开发(省时省钱,前端一人搞定)

大项目 / 多端统一​ → 自有后端(灵活可控,需后端团队)

过渡方案​ → 先用云开发上线,大了再迁;或用云托管跑容器

miniprogram-demo.zip

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐