# 客户端配置切换脚本使用说明 这个脚本用于在不同客户端配置之间快速切换,支持智念、念念、智念助手、朵朵和沐沐。 ## 主要功能 - 支持通过客户端名称切换配置 - 自动更新相关配置文件 - 统一的 JSON 配置文件管理 - 完整的错误处理和验证 ## 配置文件结构 配置文件位于项目根目录的 `client-configs.json`,包含所有客户端的完整配置信息。配置会通过 `src/constant/base.js` 文件导入和使用: ```json { "zhinian": { "clientId": "6", "appId": "wx5e79df5996572539", "name": "智念", "logo": "https://oss.nianxx.cn/mp/static/version_101/login/dh_logo.png" }, "duohua": { "clientId": "2", "appId": "wx23f86d809ae80259", "name": "朵朵", "logo": "https://oss.nianxx.cn/mp/static/version_101/login/dh_logo.png" }, "tianmu": { "clientId": "4", "appId": "wx0be424e1d22065a9", "name": "沐沐", "logo": "https://oss.nianxx.cn/mp/static/version_101/login/tm_logo.png" } } ``` ## 支持的客户端 | 客户端名称 | 显示名称 | AppID | | ------------ | -------- | ------------------ | | `zhinian` | 智念 | wx5e79df5996572539 | | `niannian` | 念念 | wx5e79df5996572539 | | `duohua` | 朵朵 | wx23f86d809ae80259 | | `tianmu` | 沐沐 | wx0be424e1d22065a9 | | `nianhelper` | 智念助手 | wx6fcf7b3db3deee6c | AppID 以 `client-configs.json` 为准。当前念念与智念使用相同的 AppID;若念念使用独立小程序,请先修改 `niannian.appId`,再执行切换或构建命令。 ## 使用方法 ### 使用客户端名称切换 ```bash # 切换到智念客户端 npm run switch-client zhinian # 切换到念念客户端 npm run switch-client -- niannian # 切换到智念助手客户端 npm run switch-client nianhelper # 切换到朵朵客户端 npm run switch-client duohua # 切换到沐沐客户端 npm run switch-client tianmu ``` ### 念念端快捷命令 ```bash # 仅切换配置 npm run switch-client:niannian # 切换到念念并启动微信小程序开发编译 npm run dev:mp-weixin:niannian # 切换到念念并构建微信小程序生产包 npm run build:mp-weixin:niannian ``` 这些命令会修改工作区中的当前客户端配置;开发和构建命令仅在切换成功后继续执行。不同端请勿在同一工作区并行编译。 ### 直接运行脚本 ```bash # 使用客户端名称 node scripts/update-appid.js tianmu ``` ## AppID 信息 微信小程序的 AppID 通常格式为: - 以 `wx` 开头 - 后跟 16 位字符(数字和字母) - 总长度 18 位 示例:`wx1234567890abcdef` ## 更新的文件 1. **src/manifest.json** - 更新 `mp-weixin.appid` 字段 - 保持文件中的注释不变 2. **project.config.json** - 更新根级别的 `appid` 字段 - 保持 JSON 格式化 3. **src/constant/base.js** - 更新 `getCurrentConfig()` 函数返回的客户端配置 4. **src/uni.scss** - 根据客户端的 `theme` 更新主题色变量 `client-configs.json` 是读取的配置源,切换脚本不会修改它。 ## 执行结果示例 ### 使用客户端名称切换: ``` 🚀 开始更新配置... 🎯 检测到客户端配置: 沐沐 (tianmu) 目标客户端: 沐沐 (tianmu) 目标appid: wx0be424e1d22065a9 📝 正在更新 base.js... ✅ base.js 更新成功,切换到 沐沐 配置 📝 正在更新 manifest.json... ✅ manifest.json 更新成功 📝 正在更新 project.config.json... ✅ project.config.json 更新成功 旧appid: wx5e79df5996572539 新appid: wx0be424e1d22065a9 🎉 所有文件更新完成! 💡 已切换到 沐沐 客户端配置 💡 提示: 请检查文件内容确认更新正确 ``` ## 错误处理 脚本包含以下验证和错误处理: - 检查必需参数是否提供 - 验证客户端名称是否有效 - 检查目标文件是否存在 - 捕获文件读写错误 - 智能跳过不需要的更新 ## 注意事项 1. **配置同步**: `src/constant/base.js` 自动读取 JSON 配置;新增端还需补齐 `ClientType` 和 `currentClientType()` 映射,确保各端登录缓存键相互独立 2. **测试建议**: 切换配置后建议先进行测试,确认功能正常 3. **备份建议**: 重要更新前建议备份相关配置文件 ## 常见问题 **Q: 脚本提示文件不存在怎么办?** A: 请确保在项目根目录执行脚本,并检查文件路径是否正确。 **Q: 脚本提示不支持的客户端名称怎么办?** A: 请检查输入的客户端名称是否正确,支持名称以 `client-configs.json` 的键为准,当前有:zhinian、niannian、nianhelper、duohua、tianmu。 **Q: 如何恢复到之前的配置?** A: 可以使用版本控制系统恢复,或者再次运行脚本切换到其他客户端配置。 **Q: 如何添加新的客户端配置?** A: 在 `client-configs.json` 中添加新的客户端配置: ```json "new_client": { "clientId": "客户端ID", "appId": "微信小程序AppID", "name": "客户端显示名称", "logo": "@/pages/login/images/logo.png" } ``` 切换脚本会自动识别新配置。还需在 `src/constant/base.js` 中添加对应的 `ClientType` 和名称映射;如需切换主题色,在配置中添加与现有客户端相同结构的 `theme` 字段。最后运行 `npm run switch-client -- new_client` 应用配置。 **Q: 脚本提示"读取配置文件失败"怎么办?** A: 检查 `client-configs.json` 文件是否存在且格式正确。 ## 验证客户端切换 ```bash node --test scripts/update-appid.test.cjs ``` 测试在临时目录中切换五个客户端,检查配置、客户端类型、AppID 和主题色,不修改工作区当前配置。