有没有HarmonyOS鸿蒙Next大佬帮助解决代码合并后多出文件需手动删除的问题
有没有HarmonyOS鸿蒙Next大佬帮助解决代码合并后多出文件需手动删除的问题

每次代码跑起来都会报这个错误,必须把红框里面的包删除才可以跑起来,有没有知道怎么解决的呢。是之前合并别人代码后出的问题,现在已经都合并了。该如何解决在线求助
更多关于有没有HarmonyOS鸿蒙Next大佬帮助解决代码合并后多出文件需手动删除的问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
你好,修改 .gitignore 文件,
1、增加忽略文件,**/oh_modules ,所有目录下的 oh_modules 都会忽略。
**/oh_modules
**/build
**/.hvigor
2、清除 Git 缓存,立即生效。分别执行下面git命令
git rm -r --cached .
git add .
git commit -m "chore: 全局忽略所有 oh_modules"
这个大概率不是代码本身的问题,而是:
oh_modules 缓存 + 软链接 + 三方模块引用
在你们合并代码后出现了冲突。
你这个报错核心是:
ENOTSUP: operation not supported on socket, copyfile
再结合:
每次删 oh_modules 才能运行
基本可以判断:
某个依赖模块被错误地软链接/嵌套引用了
尤其你截图里:
TUIKit_Harmony
uikit
两个目录下面都有:
oh_modules
这个很容易出问题。
⸻
正常情况下:
HarmonyOS 工程最好:
整个工程只有根目录一个 oh_modules
不要:
子模块再套一层 oh_modules
否则 hvigor 在:
- copy
- compile
- link
- cache
时很容易异常。
⸻
你现在这种情况一般是:
以前别人提交代码时:
把 oh_modules 也提交到 git 了
或者:
npm install / ohpm install
在子模块目录执行过。
⸻
建议直接彻底清一次。
步骤:
1、删除所有子模块里的:
oh_modules
build
包括:
TUIKit_Harmony/oh_modules
uikit/oh_modules
全部删。
⸻
2、根目录执行:
ohpm install
不要在子模块执行。
⸻
3、删除缓存
Mac:
rm -rf ~/.hvigor
rm -rf ~/.ohpm
Windows:
删:
C:\Users\用户名\.hvigor
C:\Users\用户名\.ohpm
⸻
4、重新 Sync Project
DevEco:
File -> Sync and Refresh Project
⸻
5、检查 .gitignore
确保:
oh_modules/
build/
.local/
.cache/
已经忽略。
否则团队一提交缓存文件:
别人就会炸。
⸻
还有一种可能:
你们项目用了:
软链接(ln -s)
或者:
file:
link:
workspace:
这种本地模块引用。
HarmonyOS hvigor 对某些软链接兼容并不好。
尤其 Mac 下:
copyfile ENOTSUP
特别像:
复制 socket / symlink 文件失败
⸻
一句话:
你这个本质上是合并代码后导致多个 oh_modules/缓存/软链接冲突;正确做法是删除所有子模块里的 oh_modules 和 build,只保留根目录统一依赖,然后重新 ohpm install 和 Sync Project。
在.gitignore文件中把这两个文件进行忽略
oh_modules 是 ohpm 自动生成的依赖目录,本不该提交到版本库,合并后会导致本地构建时出现 “双重依赖” 或文件锁冲突。应该是合并代码时,oh_modules 被意外提交,合并到了 Git吧
而且你的项目根目录和 chat/chatui 子模块都出现了 oh_modules,说明依赖配置混乱,构建工具在复制依赖时发生了冲突,才会报 ENOTSUP: operation not supported on socket, copyfile(文件复制失败)。
解决方法:
关闭 DevEco Studio
git终端打开项目所在的终端,执行命令,删除所有构建缓存和依赖目录:
# 删除所有oh_modules(包括根目录和子模块里的)
rm -rf oh_modules
rm -rf product/phone/oh_modules
rm -rf product/phone/src/main/ETS/TUIKIL/Harmony/chat/chatui/oh_modules
# 删除构建缓存和锁文件
rm -rf build
rm -rf .hvigor
rm -rf oh-package-lock.json5
rm -rf product/phone/build
rm -rf product/phone/.hvigor
rm -rf product/phone/oh-package-lock.json5
然后修改提交git的配置文件,让oh_modules 等目录不提交,免得后续合并进来了
最后重新打开 DevEco Studio,等待项目加载完成。
- 点击顶部菜单栏的 Build → Clean Project,清理所有旧构建缓存。
- 再点击 Build → Rebuild Project,重新构建整个项目。
- 直接点击运行按钮,看看是否还会报错。
在我分支里面试了,我推自己远程了然后还是不管用
使用 git clean -fd 清除未跟踪的多余文件,或通过 git status 识别后手动删除。若重复出现,检查 .gitignore 是否遗漏了 entry/build/、node_modules/ 等编译产物目录。


