littlebot
Published on 2025-04-09 / 2 Visits
0

【源码】基于uniapp框架的uniapp2wxpack

项目简介

uniapp2wxpack是一款面向uni-app的小程序解耦构建工具。它能够将uni-app项目输出给任意原生小程序项目,可作为目录、分包,甚至实现极端的项目混合,实现uni-app项目与原生小程序项目的自由套用。同时,无需修改原生小程序代码,即可在uni-app项目中直接引入原生小程序的项目、页面、模块及各类资源。

项目的主要特性和功能

  • 解耦构建:支持微信、头条、支付宝、百度等小程序平台,将uni-app项目输出为原生小程序项目的一部分。
  • 混写模式:可在uni-app项目中直接引入原生小程序代码,构建时自动转换为目标小程序平台代码。
  • 条件编译:对原生小程序代码进行条件编译,适配不同小程序平台差异。
  • 自定义插件:支持自定义插件对文件进行自定义编译,满足特殊需求。
  • 极端混合模式:实现原生小程序项目与uni-app项目全目录混合,完成原生小程序项目的完整迁移和升级。

安装使用步骤

  1. 准备一个uni-app项目(建议使用vue-cli安装的uni-app项目)。
  2. 在项目根目录,安装uniapp2wxpack: bash npx uniapp2wxpack --create
  3. 配置根目录下projectToSubPackageConfig.js,按需替换主小程序目录中的内容。
  4. 运行开发命令,如: bash npm run dev:mp-weixin-pack
  5. 使用小程序开发者工具预览构建后的目录,如dist/dev/mp-weixin-pack

重要使用说明

  • 使用场景
  • 原生小程序项目和uni-app项目同时开发:在mainWeixinMp目录放置用于预览的原生小程序项目,在src中进行编码开发。
  • 与完整小程序项目协同开发mainWeixinMp目录应为真实的小程序项目,构建后内容覆盖mainWeixinMp进行提交。
  • 开发模式
  • 单独开发解耦包:在mainWeixinMp目录放置用于预览的原生小程序项目。
  • 与完整小程序项目协同开发mainWeixinMp目录为真实的小程序项目。
  • 注意事项
  • 使用绝对路径时,需要拼接pack.config.js中的packPath
  • pages.jsonapp.json中配置原生小程序资源和uni-app资源。
  • 自定义插件和条件编译用于处理不同平台api不兼容的情况。
  • API
  • wx.__uniapp2wxpack:存放解耦包相关方法和数据的对象。
  • __uniRequireWx:用于引入原生小程序资源的js API。
  • __uniWxss:用于引入原生小程序资源的样式文件API。
  • @wxResource:特殊的目录别名,指向src/wxresource和构建后的uni解耦包目录。
  • 混写说明:从3.2.0版本开始支持混写功能,允许在uni-app项目中直接使用原生小程序的全局对象和相关文件。
  • 系统plugin:提供三个系统插件jsPreProcessPlugincssPreProcessPluginhtmlPreProcessPlugin,用于条件编译。
  • 条件编译:通过判断PACK_TYPE进行平台的条件判断,也可在启动命令中加入自定义的环境变量进行判断。
  • 自定义plugin:自定义插件最后处理,可处理不同端api不兼容的情况。
  • 极端方式迁移:可将完整的微信原生小程序项目,保持目录结构不变,迁移到uni-app中。
  • 引入原生资源的wxs:在uni的vue文件中引入原生资源目录的wxs需要使用__uniRequireWx
  • 路径问题:在解耦构建的项目中,根路径指向主小程序的根,需自行拼接上uni解耦包的目录名。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】