V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
coolair
V2EX  ›  问与答

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

  •  
  •   coolair · 2020-10-19 21:18:29 +08:00 · 2490 次点击
    这是一个创建于 1500 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近用了一个开源组件,这个组件用了 G6,有部分功能因为作者升级了 G6 导致不能用了。
    然后我就想着降级,发现降级也不能用。

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

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

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

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

    新项目的话,安装依赖建议添加--exact 来指定依赖的精确版本,这样即便没有 lock 文件,或者 lock 文件被误删,也可以下到正确的版本
    kongkongye
        20
    kongkongye  
       2022-05-24 21:11:43 +08:00 via iPhone
    @Mithril jenkins 那个是真的有体会,过一段时间就几十个插件可以更新了,升了也没啥用,过一段时间又要升。
    kongkongye
        21
    kongkongye  
       2022-05-24 21:14:28 +08:00 via iPhone
    像手机 app 就好多了,升级跟其他 app 没关系,开发中升级就存在互相依赖互相约束的问题。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3036 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 14:43 · PVG 22:43 · LAX 06:43 · JFK 09:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.