uni-app 使用git切换某一个项目的分支时,一切换所有项目的分支都发生了改变
uni-app 使用git切换某一个项目的分支时,一切换所有项目的分支都发生了改变
4 回复
感觉不算是git的问题,hbuilder里的项目用git切换了某一个项目的分支,所有项目分支名都变了,只是名称变了,里面的文件夹啥的都没变,有时候退出软件从新进去分支名又变回来了
无法复现。能否录制个视频?
这种情况通常是因为所有项目共享了同一个 node_modules 目录。uni-app 项目在切换分支时,如果分支间的依赖版本不同,可能会导致 node_modules 中的包版本被覆盖,从而影响其他项目。
主要原因:
- 全局依赖冲突:多个项目可能使用了相同的全局依赖路径。
- HBuilderX 配置问题:如果使用 HBuilderX,其项目管理可能将多个项目关联到同一个依赖环境。
解决方案:
-
为每个项目独立安装依赖:
- 在每个项目的根目录下单独执行
npm install或yarn install,确保每个项目有自己的node_modules。 - 避免使用全局安装的依赖。
- 在每个项目的根目录下单独执行
-
使用包管理器工作区功能(如适用):
- 如果项目是 monorepo 结构,使用 yarn workspaces 或 npm workspaces 管理依赖,但确保每个子项目依赖隔离。
-
检查 HBuilderX 设置:
- 在 HBuilderX 中,确保每个项目有独立的运行配置。进入「运行」->「运行到小程序模拟器」->「运行设置」,检查基础路径是否指向当前项目。
-
清理缓存:
- 切换分支后,删除
node_modules和package-lock.json(或yarn.lock),重新安装依赖。 - 执行
npm cache clean --force或yarn cache clean清除缓存。
- 切换分支后,删除
-
使用版本控制忽略依赖:
- 在
.gitignore中确保node_modules被忽略,避免分支切换时依赖被覆盖。
- 在
操作步骤示例:
# 进入项目目录
cd project-a
# 切换分支
git checkout feature-branch
# 删除现有依赖
rm -rf node_modules package-lock.json
# 重新安装依赖
npm install


