Entities should not be multiplied unnecessarily. —— William of Occam
HBuilderX Vanilla 提供了一个小巧的容器环境以及一套对外暴露的api,用来构建Uniapp-Vite-Vue 3项目的wgt热更新包。
docker run -d --restart=always -v <projects_folder>:/projects -p 13300:3000 --name hbuilder-vanilla flymyd114/hbuilderx-vanilla:latest
参数说明:
<projects_folder>是本机的待打包工程父目录,你的所有工程均应处于该目录下,如/Users/myd/projects下有hello-uniapp文件夹13300为建议的API端口映射点
容器首次启动后,执行如下命令以初始化依赖:
docker exec -it hbuilder-vanilla sh -c "chmod +x /root/core-install.sh && /root/core-install.sh"
访问http://127.0.0.1:13300以检查API服务是否正确启动。
curl --location 'http://127.0.0.1:13300/build?project=crp-app&vueVersion=3'
接口参数:
project: 项目文件夹名vueVersion: uniapp项目Vue版本(2或3)
产物将会在/projects/crp-app/wgt-dist中生成。
在持续集成环境中使用 HBuilderX Vanilla 可以实现自动化的wgt包构建:
# GitHub Actions 示例
steps:
- name: Start HBuilderX Vanilla
run: |
docker run -d --name hbuilderx-vanilla \
-v ${{ github.workspace }}:/projects \
-p 13300:3000 \
flymyd114/hbuilderx-vanilla:latest
- name: Initialize dependencies (first run only)
run: |
docker exec hbuilderx-vanilla sh -c "chmod +x /root/core-install.sh && /root/core-install.sh"
- name: Build wgt package
run: |
curl -fS "http://localhost:13300/build?project=my-app&vueVersion=3"
- name: Stop container
if: always()
run: docker rm -f hbuilderx-vanilla
### 本地开发
对于需要频繁构建wgt包的开发场景,可以保持容器运行状态:
```bash
# 启动容器
docker run -d --name hbuilder-vanilla -p 13300:3000 -v /path/to/projects:/projects flymyd114/hbuilderx-vanilla:latest
# 构建项目
curl "http://localhost:13300/build?project=my-project"
重要提醒:
- 确保Docker环境已正确安装
- 项目目录需要正确挂载到容器内的
/projects目录 - 首次使用需要执行初始化脚本
- 自行构建时需要先在本机HBuilderX中完成相关插件的安装