项目简介
uniapp2wxpack是一款面向uni-app的小程序解耦构建工具。它能够将uni-app项目输出给任意原生小程序项目,可作为目录、分包,甚至实现极端的项目混合,实现uni-app项目与原生小程序项目的自由套用。同时,无需修改原生小程序代码,即可在uni-app项目中直接引入原生小程序的项目、页面、模块及各类资源。
项目的主要特性和功能
- 解耦构建:支持微信、头条、支付宝、百度等小程序平台,将uni-app项目输出为原生小程序项目的一部分。
- 混写模式:可在uni-app项目中直接引入原生小程序代码,构建时自动转换为目标小程序平台代码。
- 条件编译:对原生小程序代码进行条件编译,适配不同小程序平台差异。
- 自定义插件:支持自定义插件对文件进行自定义编译,满足特殊需求。
- 极端混合模式:实现原生小程序项目与uni-app项目全目录混合,完成原生小程序项目的完整迁移和升级。
安装使用步骤
- 准备一个uni-app项目(建议使用vue-cli安装的uni-app项目)。
- 在项目根目录,安装uniapp2wxpack:
bash npx uniapp2wxpack --create
- 配置根目录下
projectToSubPackageConfig.js
,按需替换主小程序目录中的内容。 - 运行开发命令,如:
bash npm run dev:mp-weixin-pack
- 使用小程序开发者工具预览构建后的目录,如
dist/dev/mp-weixin-pack
。
重要使用说明
- 使用场景:
- 原生小程序项目和uni-app项目同时开发:在
mainWeixinMp
目录放置用于预览的原生小程序项目,在src
中进行编码开发。 - 与完整小程序项目协同开发:
mainWeixinMp
目录应为真实的小程序项目,构建后内容覆盖mainWeixinMp
进行提交。 - 开发模式:
- 单独开发解耦包:在
mainWeixinMp
目录放置用于预览的原生小程序项目。 - 与完整小程序项目协同开发:
mainWeixinMp
目录为真实的小程序项目。 - 注意事项:
- 使用绝对路径时,需要拼接
pack.config.js
中的packPath
。 - 在
pages.json
和app.json
中配置原生小程序资源和uni-app资源。 - 自定义插件和条件编译用于处理不同平台api不兼容的情况。
- API:
wx.__uniapp2wxpack
:存放解耦包相关方法和数据的对象。__uniRequireWx
:用于引入原生小程序资源的js API。__uniWxss
:用于引入原生小程序资源的样式文件API。@wxResource
:特殊的目录别名,指向src/wxresource
和构建后的uni解耦包目录。- 混写说明:从3.2.0版本开始支持混写功能,允许在uni-app项目中直接使用原生小程序的全局对象和相关文件。
- 系统plugin:提供三个系统插件
jsPreProcessPlugin
、cssPreProcessPlugin
、htmlPreProcessPlugin
,用于条件编译。 - 条件编译:通过判断
PACK_TYPE
进行平台的条件判断,也可在启动命令中加入自定义的环境变量进行判断。 - 自定义plugin:自定义插件最后处理,可处理不同端api不兼容的情况。
- 极端方式迁移:可将完整的微信原生小程序项目,保持目录结构不变,迁移到uni-app中。
- 引入原生资源的wxs:在uni的vue文件中引入原生资源目录的wxs需要使用
__uniRequireWx
。 - 路径问题:在解耦构建的项目中,根路径指向主小程序的根,需自行拼接上uni解耦包的目录名。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】