什么情况下会选择不升级 node 版本?

2023-09-19 14:14:50 +08:00
 weekidjoker
3087 次点击
所在节点    Node.js
35 条回复
liuidetmks
2023-09-19 17:36:16 +08:00
@enpitsulin hahaha 我们 node8 webpack 1.x ,没人想改。npm install 都无法成功,必须通过特殊手段安装。
adoal
2023-09-19 17:42:13 +08:00
说到底就是成本和收益的权衡。有很多屎山业务系统,用的基础组件已经爆出很多严重安全漏洞了,但就是不去更新。因为安全问题并不一定真的会导致事故,但把业务系统更新挂了又修不好那可是要丢饭碗的。
adoal
2023-09-19 17:45:02 +08:00
现实中有很多程序员在对用到的 library/SDK/API/whatever 理解不到位的情况下,发现实际由于 bug 导致的测试行为跟文档不一致,并不会意识到是 bug ,而是凭着瞎猜各种补来补去搞定,还自以为有了新经验。这种你要是去升了,fix bug 了,人家依赖 bug 行为而写的业务系统铁定挂掉。
weekidjoker
2023-09-19 18:14:28 +08:00
@adoal #23 所以定位 bug 的能力也挺重要的
guiling
2023-09-19 18:16:52 +08:00
开发环境:nvm 随便改
生产环境:非必要不更新
7inFen
2023-09-19 19:07:19 +08:00
无所谓,就算升到 v20 还是会用`npm install --legacy-peer-deps`
Ming5Ming
2023-09-19 19:22:43 +08:00
能用就别升了吧, 何必折腾呢, 万一崩了还得自己去修 bug
roundgis
2023-09-19 20:17:21 +08:00
古老項目
MaxFang
2023-09-19 23:21:02 +08:00
如果不升级,项目跑不了,那升级;如果升级可以加薪,那升级。否则,都不升级。
libook
2023-09-20 11:11:32 +08:00
patch 版本通常都会修复 bug 和安全漏洞的,所以一般能升就升。

minor 版本通常会引入新特性,或积累比较多的更新,出了一个 minor 之后就不会出上一个 minor 的 patch ,所以一般能升就升。

major 版本通常有支持周期的,如果过了周期也就不会有修复 bug 或安全更新了,所以最好随时保证 major 版本仍有更新支持。其他的就是看依赖包是不是兼容,像 gyp 包就有可能跟 major 版本强相关,node 过新可能编译失败。

当然不管什么时候给项目升级,都要做好测试,最好能灰度发布看一看;这个不论是升级 node 还是升级依赖还是升级系统环境都是一样的。
zhongs
2023-09-20 17:02:45 +08:00
代码层面,新版本废除了一些老版本的 API
Torpedo
2023-09-20 22:40:30 +08:00
服务端一般不升。但是打包比如 webpack 总是尽量升
LokiSharp
2023-10-23 02:25:54 +08:00
没有写单元测试就不升级,写了完善的测试就修改到可以全 PASS 为止
wangtian2020
2023-11-07 17:09:43 +08:00
升不上去的时候,选择不升级 node 版本。
核心业务跑在 Ubuntu 16 上,实在是升不上去各种依赖缺失。
试了几个版本用不了,最终用的 nodejs 最新的 v16 ,还行,最新的方便 API 齐全。
wangtian2020
2023-11-07 17:12:48 +08:00
@DOLLOR 2023 年了,
node-sass 早就一脚踹出依赖了 https://www.npmjs.com/package/node-sass
dart-sass 直接平替 https://www.npmjs.com/package/sass

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

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

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

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

© 2021 V2EX