# 多人协作多端开发方案 ## 一、问题分析 ### 1.1 当前协作场景 ``` 团队成员分工: ├── 开发者A → 消费者端 (consumer) ├── 开发者B → 商家端 (merchant) ├── 开发者C → 管理端 (admin) ├── 开发者D → 分析端 (analytics) └── 开发者E → 配送端 (delivery) ``` ### 1.2 潜在冲突问题 如果每个人都在 `manifest.json` 或 `pages.json` 中修改配置: - ❌ Git 合并冲突频繁 - ❌ 互相覆盖配置 - ❌ 影响其他端的编译 --- ## 二、推荐方案:端专用配置文件 ### 2.1 核心思路 **不修改公共配置文件,而是创建端专用的配置文件** ``` mall/ ├── pages.json # 主配置(保持不变,供 App 端使用) ├── manifest.json # 主配置(保持不变) │ ├── config/ # 端专用配置目录 │ ├── consumer/ # 消费者端配置 │ │ ├── pages.json # 消费者端页面配置 │ │ └── manifest.json # 消费者端小程序配置 │ │ │ ├── merchant/ # 商家端配置 │ │ ├── pages.json │ │ └── manifest.json │ │ │ ├── admin/ # 管理端配置 │ │ ├── pages.json │ │ └── manifest.json │ │ │ ├── analytics/ # 分析端配置 │ │ ├── pages.json │ │ └── manifest.json │ │ │ └── delivery/ # 配送端配置 │ ├── pages.json │ └── manifest.json │ └── scripts/ # 构建脚本 ├── build-consumer.sh # 消费者端构建脚本 ├── build-merchant.sh # 商家端构建脚本 └── ... ``` ### 2.2 优势 | 优势 | 说明 | |------|------| | ✅ 无冲突 | 每个开发者只修改自己端的配置文件 | | ✅ 独立发布 | 各端可独立编译和发布 | | ✅ 代码共享 | 页面代码仍在同一仓库,便于共享 | | ✅ 向后兼容 | 主配置文件保持不变,不影响 App 端 | --- ## 三、具体实施 ### 3.1 创建端专用配置目录 ```bash # 创建配置目录结构 mkdir -p config/consumer mkdir -p config/merchant mkdir -p config/admin mkdir -p config/analytics mkdir -p config/delivery ``` ### 3.2 消费者端配置示例 #### config/consumer/pages.json ```json { "pages": [ { "path": "pages/user/login", "style": { "navigationBarTitleText": "登录" } }, { "path": "pages/main/index", "style": { "navigationBarTitleText": "首页", "navigationStyle": "custom" } }, { "path": "pages/main/category", "style": { "navigationBarTitleText": "分类", "navigationStyle": "custom" } }, { "path": "pages/main/cart", "style": { "navigationBarTitleText": "购物车", "navigationStyle": "custom" } }, { "path": "pages/main/profile", "style": { "navigationBarTitleText": "我的", "navigationStyle": "custom" } } ], "subPackages": [ { "root": "pages/mall/consumer", "pages": [ { "path": "product-detail", "style": { "navigationBarTitleText": "商品详情" } }, { "path": "shop-detail", "style": { "navigationBarTitleText": "店铺详情" } }, { "path": "search", "style": { "navigationBarTitleText": "搜索" } }, { "path": "checkout", "style": { "navigationBarTitleText": "结算" } }, { "path": "payment", "style": { "navigationBarTitleText": "支付" } }, { "path": "orders", "style": { "navigationBarTitleText": "订单" } }, { "path": "order-detail", "style": { "navigationBarTitleText": "订单详情" } }, { "path": "favorites", "style": { "navigationBarTitleText": "收藏" } }, { "path": "coupons", "style": { "navigationBarTitleText": "优惠券" } }, { "path": "address-list", "style": { "navigationBarTitleText": "地址管理" } }, { "path": "address-edit", "style": { "navigationBarTitleText": "编辑地址" } }, { "path": "chat", "style": { "navigationBarTitleText": "客服" } }, { "path": "points/index", "style": { "navigationBarTitleText": "积分" } }, { "path": "member/index", "style": { "navigationBarTitleText": "会员" } }, { "path": "wallet", "style": { "navigationBarTitleText": "钱包" } }, { "path": "settings", "style": { "navigationBarTitleText": "设置" } } ] } ], "globalStyle": { "navigationBarTextStyle": "black", "navigationBarTitleText": "商城", "navigationBarBackgroundColor": "#ffffff", "backgroundColor": "#f5f5f5" }, "tabBar": { "color": "#999999", "selectedColor": "#ff5000", "borderStyle": "black", "backgroundColor": "#ffffff", "list": [ { "pagePath": "pages/main/index", "text": "首页", "iconPath": "static/tabbar/home.png", "selectedIconPath": "static/tabbar/home-active.png" }, { "pagePath": "pages/main/category", "text": "分类", "iconPath": "static/tabbar/category.png", "selectedIconPath": "static/tabbar/category-active.png" }, { "pagePath": "pages/main/cart", "text": "购物车", "iconPath": "static/tabbar/cart.png", "selectedIconPath": "static/tabbar/cart-active.png" }, { "pagePath": "pages/main/profile", "text": "我的", "iconPath": "static/tabbar/profile.png", "selectedIconPath": "static/tabbar/profile-active.png" } ] } } ``` #### config/consumer/manifest.json ```json { "name": "商城消费者端", "appid": "__UNI__CONSUMER", "description": "商城消费者端小程序", "versionName": "1.0.0", "versionCode": "100", "mp-weixin": { "appid": "wx_consumer_appid", "setting": { "urlCheck": false, "es6": true, "postcss": true, "minified": true }, "usingComponents": true, "optimization": { "subPackages": true } } } ``` ### 3.3 构建脚本 #### scripts/build-consumer.sh ```bash #!/bin/bash # 消费者端小程序构建脚本 # 复制消费者端配置到根目录 cp config/consumer/pages.json pages.json cp config/consumer/manifest.json manifest.json # 执行编译 uni build -p mp-weixin # 编译完成后恢复原配置(可选) # git checkout pages.json manifest.json echo "消费者端小程序构建完成!" ``` #### scripts/dev-consumer.sh ```bash #!/bin/bash # 消费者端开发脚本 # 复制消费者端配置到根目录 cp config/consumer/pages.json pages.json cp config/consumer/manifest.json manifest.json # 启动开发服务器 uni -p mp-weixin echo "消费者端开发环境已启动!" ``` --- ## 四、Git 协作策略 ### 4.1 .gitignore 配置 ```gitignore # 编译产物 unpackage/ # 临时配置文件(可选) # 如果不想提交临时替换的配置,可以忽略 # pages.json # manifest.json ``` ### 4.2 分支策略 ``` main # 主分支(稳定版本) ├── develop # 开发分支 │ ├── feature/consumer # 消费者端功能分支 │ ├── feature/merchant # 商家端功能分支 │ ├── feature/admin # 管理端功能分支 │ └── ... └── release/consumer # 消费者端发布分支 ``` ### 4.3 提交规范 ``` feat(consumer): 添加会员功能 fix(merchant): 修复订单列表bug docs(admin): 更新管理端文档 style(analytics): 优化分析端样式 ``` --- ## 五、HBuilderX 配置(推荐) ### 5.1 创建多个运行配置 在 HBuilderX 中,可以为每个端创建独立的运行配置: **运行 → 运行到小程序模拟器 → 消费者端微信小程序** 配置文件:`.hbuilderx/launch.json` ```json { "version": "0.0.1", "configurations": [ { "name": "消费者端-微信小程序", "type": "uni-app", "platform": "mp-weixin", "args": { "pages": "config/consumer/pages.json", "manifest": "config/consumer/manifest.json" } }, { "name": "商家端-微信小程序", "type": "uni-app", "platform": "mp-weixin", "args": { "pages": "config/merchant/pages.json", "manifest": "config/merchant/manifest.json" } } ] } ``` --- ## 六、团队协作流程 ### 6.1 开发流程 ``` 1. 拉取最新代码 git pull origin develop 2. 创建功能分支 git checkout -b feature/consumer/member-function 3. 开发(只修改消费者端相关文件) - 修改 pages/mall/consumer/*.uvue - 修改 config/consumer/pages.json(如需添加新页面) 4. 提交代码 git add . git commit -m "feat(consumer): 添加会员功能" 5. 推送并创建 PR git push origin feature/consumer/member-function ``` ### 6.2 编译发布流程 ``` 1. 切换到发布分支 git checkout release/consumer 2. 执行构建脚本 ./scripts/build-consumer.sh 3. 上传小程序代码 微信开发者工具 → 上传 4. 提交审核 微信公众平台 → 提交审核 ``` --- ## 七、注意事项 ### 7.1 共享代码修改 如果修改了共享代码(如 `utils/`、`components/`、`types/`),需要: 1. 通知相关开发者 2. 确保不影响其他端 3. 在 PR 中详细说明 ### 7.2 配置文件同步 如果主 `pages.json` 有公共页面更新,需要同步到各端的配置文件: ```bash # 同步公共页面配置 ./scripts/sync-common-pages.sh ``` ### 7.3 冲突处理 如果发生配置冲突: 1. 优先保留各端专用配置 2. 合并公共配置 3. 团队沟通确认 --- ## 八、总结 ### 推荐方案 **端专用配置文件 + 构建脚本** ### 核心优势 | 优势 | 说明 | |------|------| | ✅ 无冲突 | 每个开发者只修改自己端的配置 | | ✅ 体积可控 | 每个端只编译自己需要的页面 | | ✅ 独立发布 | 各端可独立发布小程序 | | ✅ 代码共享 | 页面代码仍在同一仓库 | ### 目录结构 ``` config/ ├── consumer/ # 消费者端配置(开发者A维护) ├── merchant/ # 商家端配置(开发者B维护) ├── admin/ # 管理端配置(开发者C维护) ├── analytics/ # 分析端配置(开发者D维护) └── delivery/ # 配送端配置(开发者E维护) ```