最近老有兄弟问我,Nodejs 14这玩意儿,是不是已经停止维护了,现在还能不能继续用?这话问出来,我心里也挺不是滋味儿的,因为这事儿,我可真是经历了一番折腾。
本站为89游戏官网游戏攻略分站,89游戏每日更新热门游戏,下载请前往主站地址:www.gm89.icu
当年,Nodejs 14刚出来的时候,那叫一个稳,那叫一个香!我记得清清楚楚,大概是前几年,我手头有个小项目,一个给公司内部用的数据看板。那时候我刚开始捣鼓一些后端的东西,看网上大家都推荐Nodejs,觉得上手快,JavaScript我也熟,就想着试试看。一查版本,14是当时比较新而且LTS的版本,大家都说稳定,得,那就它了!我撸起袖子就干,起手就是用Nodejs 14搭环境,装依赖,写接口,那叫一个顺畅。
项目跑起来后,效果还不错,大家用着都挺方便的,我也就没太管它。这几年,我手上项目也多了,新的旧的,Go,Python,各种技术栈都在用,很多时候,一个项目跑起来了,只要不出大问题,谁还天天盯着它后面版本更迭这些事儿?就是想着能跑就行,别给我添乱。
可好景不长,大概是去年,我突然接到个任务,要给这个老数据看板加个新功能,而且需要用到一些比较新的前端框架。前端小哥把新代码给我,我往上一套,好家伙,直接给我报错!各种依赖冲突,各种不兼容,折腾了我好几天。我当时就懵了,想着怎么回事儿,代码明明没问题。后来没办法,只能硬着头皮一点点去查,从*里头的依赖版本,查到Nodejs的版本要求。这一查,才发现,很多新的依赖包,压根儿就不支持Nodejs 14了!
那时候我才意识到,完了,我的Nodejs 14,大概是“退休”了。我赶紧去官网一瞅,果不其然,Nodejs 14早就不在LTS(长期支持)列表里了,人家已经官方宣布停止维护了。那时候我心里哇凉哇凉的,就像当年我那辆开了好几年的老捷达,突然说要强制报废一样,虽然知道会有这么一天,但真到了眼前,还是有点舍不得,有点不甘心。
那段时间,我真是纠结透了。你说这老项目,虽然小,但也跑得稳稳当当的,突然让我升级,想想那一堆依赖,一堆可能隐藏的坑,我的头都大了。一边是新功能开发受阻,一边是升级可能带来的未知风险,真是两难。我私底下问了好几个在其他公司做的朋友,他们有的也遇到过类似情况。大部分都跟我说,如果项目不重要,或者暂时没遇到啥大问题,可以苟着;但要是出了安全漏洞,或者要上新功能,那还是赶紧升级,不然迟早是个雷。
我回想起来,那段时间我可真是吃了不少亏。最要命的就是有些库,根本不给你维护老版本的兼容性。你只要想用新功能,或者引入新的包,基本上就是死路一条。而且万一真出了什么安全问题,官方不再提供补丁了,那风险就全得自己扛着。你想想,公司的内部数据,要是哪天因为个老掉牙的版本出了问题,那可真是吃不了兜着走。
我还是咬咬牙,决定升级!我先是把我那个数据看板的项目,把Nodejs版本从14直接干到了16,想着能稳点就稳点。升级过程嘛比我想象中要麻烦。有些老代码,写法已经不推荐了,得改;有些依赖包,直接不兼容了,得找替代品。那几天,我加班到很晚,咖啡当水喝,眼睛都熬红了。不过也多亏了那次折腾,我才算彻底把这个“老古董”给搬了出去。
你问我Nodejs 14还能不能用?我的切身体会就是:
- 如果你手头有个特别小的,根本不联网,纯粹自己跑着玩儿,而且你确定未来几年都不会有任何功能更新和依赖引入的小项目,那倒也还能凑合用。
- 但是,只要是稍微正经一点的项目,哪怕是自己的个人博客,只要它依赖外部库,只要它可能未来需要维护更新,或者涉及到任何一丁点安全方面的东西,那我劝你,赶紧升级!
停止维护这事儿,可不是说着玩儿的。它意味着出了问题没人管,新的技术享受不到,社区支持也越来越少。你总不能指望着出了事儿,自己硬着头皮去翻源码修复?咱是程序员,不是活菩萨,没那闲工夫和能力去给一个已经“退休”的技术续命。技术这东西,发展太快了,有时候,该放手就得放手,跟上潮流,才能走得更远,不是吗?