约 6 分钟您可以阅读完本篇文章 🕰️
❓ 问题描述
通过 git submodule 在项目中使用其他小伙伴维护的下游系统,包管理工具加载时,出现了无法找到下游模块中的某个类,错误截图如下:
🚑 解决思路
- 检查下游模块存放位置是否存在代码,确认不是项目映射问题
- 检查项目的根目录下, .gitmodules 文件中是否存在,无法找到的依赖类的对应仓库地址
- 上述两个解决思路,如果不存在代码,并且 .gitmodules 中存在无法找到的依赖类的对应仓库地址,那原因就是下游系统仓库在添加时,没有使用正确的方式
git submodule add的方式添加
🧰 解决步骤
子列表的命令代表,上述错误截图中实际场景处理执行的命令,请根据自己场景切换
-
终端执行
git submodule init && git submodule update && git pull --recurse-submodules,保证目前已拉取,所有正常依赖的下游系统仓库git submodule init && git submodule update && git pull --recurse-submodules
-
终端执行
git rm --cached 子模块存放位置的文件夹,删除 .git 中的缓存git rm --cached /packages/haxibiao/helpers
-
请进入路径
/项目地址/.git/modules/子模块存放位置的文件夹,检查是否存在包管理工具无法找到的模块,如果有,请删除它cd 项目/.git/modules/packages/haxibiao
-
回到项目的根目录,终端执行
git submodule add 子模块仓库地址(xxx.git),使用正确的方式添加 git submodulegit submodule add http://code.haxibiao.cn/packages/haxibiao-helpers.git packages/haxibiao/helpers
-
尝试重新安装项目依赖,如果此时提示模块已存在,请删除子模块存放位置的文件夹,再次安装即可
🤔 注意事项
- 不要直接在项目中的 .gitmodules 文件中去删除无法找到的依赖类的对应仓库地址,因为这样 git 会出现 merge,需要你 git stash ,这样是无法处理目前的问题的(重要)
🎉 结语
本人技术能力有限,如果有写的不对的地方,请留言斧正,十分感谢🙇
如果没有解决您的问题,首先十分抱歉耽误您的时间,可以在下方评论区留言,看到后我会第一时间回复🙍♂️