▶_MiniApp Toolkit
⚠️ 该项目已标记为弃用(长期停滞、不再维护),不建议用于新项目。

WePY

框架已弃用

腾讯开源的小程序组件化开发框架,类 Vue 语法,支持组件化开发、状态管理、编译优化。微信小程序原生增强方案。已于 2024 年归档,不建议用于新项目。

22,576🕒 最近更新 2020-07
前端框架组件化框架Vue语法

特性

  • 类Vue开发风格
  • 自定义组件开发
  • 引入NPM包
  • Promise/Async Functions
  • 支持Less/Sass/Stylus
  • TypeScript支持
  • 编译器插件体系

详细文档

WePY — 腾讯小程序组件化框架(已归档)#

⚠️ 项目已归档(2024 年),不再活跃维护。新项目请选用 Taro / uni-app / Mpx。

资源概述#

WePY(发音 /'wepi/)是腾讯于 2017 年开源的微信小程序组件化开发框架,是最早一批小程序增强框架之一。它通过预编译手段,让开发者使用类 Vue 单文件组件(.wpy)的语法开发小程序,在编译时转换为微信原生代码。

核心特性:

  • 类 Vue 语法:单文件组件模式,<template> + <style> + <script> + <config> 四段式结构
  • 组件化:支持自定义组件、组件嵌套与通信($broadcast / $emit / $invoke
  • NPM 支持:可直接在小程序中引入第三方 npm 包
  • Promise 化:所有微信小程序异步 API 封装为 Promise,支持 async/await
  • 编译器支持:Less/Sass/Stylus/PostCSS、Babel/TypeScript、Pug
  • 插件体系:文件压缩、图片压缩、内容替换等构建插件

历史地位: WePY 是小程序生态早期最重要的框架之一,与 Taro、uni-app、mpvue 并称四大小程序框架。腾讯疫苗查询、腾讯翻译君、腾讯地图、玩转故宫等知名小程序均使用 WePY 开发。GitHub 累计 22.5k stars。

当前状态: 随着微信原生能力增强(自定义组件、 npm 支持)以及 Taro/uni-app/Mpx 等跨端框架崛起,WePY 已于 2024 年正式归档(GitHub repository archived),不再接受 PR 和 issue。新项目不建议选用。

设计规范#

单文件组件结构#

code
<!-- src/pages/index.wpy -->
<style lang="less">
@color: #4D926F;
.num { color: @color; }
</style>

<template>
  <view class="container">
    <view class="num" @tap="num++">{{num}}</view>
    <custom-component />
    <input v-model="text" />
  </view>
</template>

<config>
{
  usingComponents: {
    customComponent: '@/components/customComponent'
  }
}
</config>

<script>
import wepy from '@wepy/core';

wepy.page({
  data: { num: 0, text: 'Hello World' },
});
</script>

组件通信#

WePY 提供三种组件通信方式:

  • $broadcast:父组件向所有子组件广播事件
  • $emit:子组件向父组件发送事件
  • $invoke:直接调用另一组件的方法

审核规范#

WePY 项目编译后输出标准微信小程序代码,审核流程与原生小程序一致。需遵守微信小程序运营规范:

  • 主体需在微信公众平台注册并通过认证
  • 类目与实际内容匹配
  • iOS 端虚拟支付需走 iOS 内购
  • 不得诱导分享、刷量

开发指南#

快速上手#

code
# 1. 安装 WePY CLI
npm install @wepy/cli@next -g

# 2. 创建项目
wepy init standard myproject

# 3. 安装依赖
cd myproject && npm install

# 4. 启动开发编译(热更新)
wepy build --watch

# 5. 用微信开发者工具打开 dist 目录预览

项目目录结构#

code
myproject/
├── src/
│   ├── app.wpy          # 入口文件
│   ├── pages/            # 页面
│   │   └── index.wpy
│   ├── components/       # 自定义组件
│   └── mixins/           # 混入
├── wepy.config.js        # 构建配置
└── package.json

常见陷阱#

  1. 已归档无社区支持:框架已停止维护,遇到 bug 无法通过 issue 获取帮助,新项目应选择 Taro / uni-app
  2. WePY 2.x 与 1.x 差异大:2.x 基于 @wepy/core,API 有较大变化,文档分散,迁移成本高
  3. 编译产物不可直接调试:WePY 编译后代码与源码差异较大,需依赖 sourcemap
  4. 与原生组件混用限制:WePY 自定义组件与微信原生自定义组件可混用,但事件机制不同,需通过 usingComponents 显式声明
  5. 包体增大:编译后的运行时框架代码会增加包体大小(约 100-200KB),需注意主包 2MB 限制

迁移建议#

从 WePY 迁移到现代框架:

  • → Taro:React/Vue 语法,跨端能力强,社区活跃
  • → uni-app:Vue 语法,生态成熟
  • → Mpx:滴滴出品,增强型小程序框架

生态资源#

推荐框架(替代方案)#

框架语法Stars说明
TaroReact/Vue37k+京东出品,跨端能力强
uni-appVue39k+DCloud 出品,生态最全
MpxVue11k+滴滴出品,小程序增强

UI 库#

说明
WeUI微信官方 UI 库,WePY 项目可直接引用
Vant Weapp有赞出品,需通过 usingComponents 引入

社区资源#

版本更新#

  • 2024 年:GitHub 仓库正式归档(archived),停止维护
  • WePY 2.x(最后版本):基于 @wepy/core,支持 Vue 风格的响应式数据流
  • 不再接收:PR、issue、bug 修复
  • 建议:所有 WePY 项目应制定迁移计划,逐步迁移到 Taro / uni-app / Mpx