1
vigoss 2020-04-24 19:15:50 +08:00
fork 一份 A 或者 B,修改依赖。替换成你 fork 的。
|
2
HanSonJ 2020-04-24 19:17:48 +08:00
其中一个 package 换个可以兼容的版本,可以是 A 升级或 B 降级
|
4
zjsxwc 2020-04-24 19:34:49 +08:00 via Android
和 golang 那样处理
|
5
dobelee 2020-04-24 19:37:00 +08:00 via iPhone
解决 json 的冲突,保留你想要的版本,干掉文件,重新安装。
|
6
gouki 2020-04-24 20:57:32 +08:00
js 可以 declare 方法,PHP 不行。所以你的想法在 PHP 中是行不通的。
楼上的方法都不错。还有一种就是,可能你引用的类库太老了,居然不更新了,那你最好也别引用了。否则后面的坑可能会更多 |
7
jfcherng 2020-04-24 21:20:17 +08:00
你不想維護那就給作者發 PR 吧, 作者不理你那就換其他 lib
|
9
zjsxwc 2020-04-24 23:02:13 +08:00 via Android
symfony 的做法是在高版本里增加 polyfill 兼容代码,比如你创建个 packageC-polyfill 三方项目,
这个三方项目的作用就是让你的 packageC:2.x 兼容 packageC:1.x, 然后让 packageA 依赖下 packageC:2.x, 以及让 packageC:2.x 依赖你的 packageC-polyfill |
10
rikka OP @zjsxwc #9 你忘了一点,我项目依赖 A,B 这两个第三方包,然后 A,B 又依赖了 C,这个 C 显然也是第三方的,这 3 个包我根本无法修改他们的依赖关系
除非像 1L 楼说的 fork 一份出来修改 |
11
zjsxwc 2020-04-25 08:50:45 +08:00 1
@rikka
可以试试用 replace 属性,写一个三方包同时代替 packageC:1.x 与 packageC:2.x http://blog.ifeeline.com/2695.html ``` "replace": { "packageC": "1.x|2.x" } ``` |