前端都这样的吗?不能更新升级的吗?

2020-10-19 21:18:29 +08:00
 coolair
最近用了一个开源组件,这个组件用了 G6,有部分功能因为作者升级了 G6 导致不能用了。
然后我就想着降级,发现降级也不能用。

我想,干脆把所有库都是更新到最新,再一次性搞定。
没想到我太天真了,全部升级到最新以后,基本上所有功能都不能用了,点哪哪报错。
真是服气啊。
2515 次点击
所在节点    问与答
21 条回复
hazyzh
2020-10-19 21:30:46 +08:00
哈哈哈
des
2020-10-19 21:31:21 +08:00
就是这个样子的,我也遇到过
kamal
2020-10-19 21:34:32 +08:00
现在 npm 也有 lock 版本机制了,注意看看能用的版本,不跟着升级。
coolair
2020-10-19 21:59:55 +08:00
我发现 G6 这玩意,老外用的不多啊,面向搜索引擎不实用了……
bojackhorseman
2020-10-19 23:05:32 +08:00
鬼知道新版又把哪些接口给改了。我也喜欢把各种东西升级到最新,有次手贱把测试版 app 更新了,找不到修改 h5 配置的入口,同事看到了,我就 ababa,说不知道怎么就更新了🤪
sean10
2020-10-20 01:25:09 +08:00
升一个连着升级,只能找个稳定的版本,尽量啥都不动
blackcurrant
2020-10-20 01:29:51 +08:00
什么是 G6?
mwVYYA6
2020-10-20 01:44:59 +08:00
@blackcurrant 阿里做的图表项目
autoxbc
2020-10-20 03:47:58 +08:00
这跟前端没关系,Intel 也不敢同时升级核心和制程,复杂体系自身的规律
Mithril
2020-10-20 07:39:26 +08:00
最后就会变成,你要升级一个开源库去修复 bug,但是升级这个库需要升级它依赖的库。然后升级它依赖库就会导致你用的另一个开源库挂掉。
完全就成了套娃。
NPM 包这种问题最多了,所以基本上个人维护的开源库能不碰就不碰。
这就是为啥不喜欢 Jenkins,那个插件系统的简直就是噩梦。一次性配置好就不能碰,随便升级点啥没准整个系统就挂了。
suzic
2020-10-20 07:52:51 +08:00
是这样的,昨天我也碰到了类似情况
murmur
2020-10-20 08:00:41 +08:00
是这样的,所以能不更新就不更新,浏览器向下兼容的已经很好了,jquery 都照跑没事瞎升级啥。。
coolair
2020-10-20 08:26:46 +08:00
@Mithril 老哥真是经验之谈啊,我用的就是一位大佬的开源项目,这个新的 feature 是一位使用这个库的朋友提交的 pull requests,后面这位老哥升级了版本,但是这个 feature 比较麻烦,就没管这块,估计也不想管这块了。然而那位提交 feature 的老哥估计也不用这玩意了,估摸着也不会管了。

更重要的是,我能力不足,自己还搞不定……哈哈,真是尴尬。
clf
2020-10-20 08:54:00 +08:00
@murmur jquery 这类框架本来就是因为兼容几大浏览器才流行起来的。

依赖升级其实也看情况,大部分情况下只要不是大版本更新就不会对使用方法进行大幅度修改。当然,部分人版本命名很不规范,标记的小版本升级,结果方法魔改了一堆。
pecopeco
2020-10-20 08:54:59 +08:00
成熟的项目里后端你也不敢随意升级啊
nieyujiang
2020-10-20 08:58:27 +08:00
锁死固定版本就好了....
yaphets666
2020-10-20 09:14:09 +08:00
下次记得锁死依赖的版本.后端也是这样的
hackyuan
2020-10-20 09:27:49 +08:00
哪一端不是这样?
redbuck
2020-10-20 14:19:59 +08:00
npm 安装记得加--exact

这个问题根源还是很多包作者随意更改版本号,没有遵照语义化版本号的规范.
例如发布存在 breaking change 的版本的时,只修改修订号.
导致 package.json 里的~,^等标志都失效了.

新项目的话,安装依赖建议添加--exact 来指定依赖的精确版本,这样即便没有 lock 文件,或者 lock 文件被误删,也可以下到正确的版本
kongkongye
2022-05-24 21:11:43 +08:00
@Mithril jenkins 那个是真的有体会,过一段时间就几十个插件可以更新了,升了也没啥用,过一段时间又要升。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/716497

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX