各位大佬写 go 的时候遇没遇到过 引用的多个第三方包的间接依赖冲突的问题 比如说,引用了两个第三方包 A 和 B ,他们都引用了别的包 C ,但版本不同; A 依赖 C v1.0 ; B 依赖 C v2.0 但 C 不向前兼容,go mod tidy 只使用最新的版本。 有没有优雅一点的解决办法,我现在想到的只有修改第三方包了
1
bazingaterry 2023-09-28 16:05:09 +08:00
这种情况下 C 的 package name 应该是 C/v2 ,不遵循的话就没办法了
|
2
pannanxu 2023-09-28 16:09:21 +08:00
java 的包管理可以排除某个依赖里的子依赖。看看 go 是否有类似的功能呢?全局排除后再手动添加指定版本的依赖即可。
|
3
skiy 2023-09-28 16:13:55 +08:00
应该不会吧?没遇到过这种问题。
replace 看看。 |
4
TheF00L OP @bazingaterry 可能我例子有点问题,没有那么大的版本变化,就小版本变化,但没有向前兼容
|
7
fqy12300 2023-09-28 16:33:05 +08:00
PNPM ?
|
8
thet 2023-09-28 16:42:15 +08:00
目前没有好的办法,可以调整 A B 版本,让他们引用相同的 C 版本,或者就是你说的 fork 一个 C 了
|
9
crysislinux 2023-09-28 16:47:10 +08:00 via Android
现在知道 npm 的难处了吧。这种问题要么避免,就不可能有什么好的解决办法。
|
10
Aoang 2023-09-28 21:22:24 +08:00
某些包更恶心,
A v1.0 依赖 B v1.1 B v1.2 依赖 A v1.0 A v1.1 依赖 B v1.2 …… 一拉就是一生 |
11
lysS 2023-09-29 15:56:38 +08:00
它现在报错是啥?
|