【问题描述】
-
当项目里使用了模块静态共享包的形式开发,打包成har集成。
-
可能会出现几个模块依赖了相同模块的问题,而依赖的版本却不一样,例如:
A模块依赖B、C、D
B模块依赖C、E
C同时被A、B依赖
在开发阶段,当C版本升级时,A知道C有新版本,A升级了C的版本
而B并不知道C升级了,依赖的是旧版本的C模块
然而A还依赖B,这会导致A的直接间接依赖了两个版本的C,这会出现依赖冲突,导致项目报错
-
正常来说oh-package-lock.json5里会记录各模块的依赖关系,编辑器会更据oh-package.json5,依赖的安装情况,使用最新的C运行工程,是不应该出现报错的。
【可能原因】
-
编辑器的bug
-
编辑器有缓存
【解决方式】
-
构建-重新构建项目:如果这一步不行,继续往后执行。
-
构建-清理项目:执行完成编辑器会自动清理build目录
-
手动删除目录里所有的oh_modules
-
手动删除oh-package-lock.json5,(执行第4步会自动生成正确的文件)
-
关闭编辑重新打开,让编辑自动安装依赖(不建议执行完第2第3步后,手动执行ohpm install,因为关闭编辑可以打断与source.map引用)
【测试】
- 点击运行,项目能运行起来