分享

npm 代码库 request 退役,不再更新

 板桥胡同37号 2020-02-12
request每周的下载量多达1700万人次,现在码农们应考虑替代的代码库。

经过11个月的计划后,由npm分发的request模块终于被弃用,这意味着这个用于生成HTTP请求的流行JavaScript代码库不再受到支持,也不再收到进一步的更新。

除了来自npm命令行客户软件的弃用警告外,包含request这个依赖项的另外几乎48000个npm模块都不会立即受到任何影响。但是那些模块的维护者应该考虑修改其代码,以便模块使用替代的库以处理HTTP交互。

request的版本现在为2.88.2,每周下载量仍达到近1700万人次,它由Mikeal Rogers于2009年创建,他目前在开源公司Protocol Labs处理社区事务。

去年3月他提出了一项计划,停止request方面的工作,这个采用Apache 2.0许可证的开源项目在GitHub存储库中列出了282个贡献者。

尽管该模块非常流行,Rogers表示JavaScript生态系统一直在迅速变化,而request核心的代码模式已俨然过时了。他在2018年考虑了更新request以符合更现代的编程实践后,这个想法(即更新)似乎切实可行。但去年,他得出了截然相反的结论,决定停止更新代码,以便更多的现代模块有机会发展和完善。

他写道:“对于这些新模块来说,最好的局面是request渐行渐远,最终成为历史长河中的另一件古董。

“虽说request目前在社区有强大的地位,但让更多的下一代开发人员使用它对于那些开发人员来说却只会帮倒忙,因为request只会让他们无缘没有该代码库的历史包袱的更好模块。

Rogers解释道,他在Node.js处于早期阶段开发Node.js Core的同时开发了request。因此,该模块实现了许多早期的Node.js模式,比如标准回调和数据流。

Rogers说:“这段历史对于了解request与那些旧模式之间有何等紧密的联系非常重要。自那以来,JavaScript和Node.js已取得了长足的发展,所有模式request必然被生态系统中的开发人员(包括我自己)此后改而采用的更好模式(异步/等待、异步生成器和获取)所取而代之。

他说:“如今,使用request的开发人员常常包括间接层,以便将那些旧模式移植到新模式。这体现在包大小、性能和可调试性上,众多更新颖的库却没有这些问题。

像Gatsby、Auth0和VinylDNS这些项目早已换掉了request,改成处理HTTP的替代模块,比如get和axios。Rogers开发了自己的后续模块bent。虽然其他依赖request的npm模块的维护者可能在制定计划以便改弦易辙,但其他维护者可能犹豫不决,确保request可以持续多年。

Rogers表示,许多库依赖request作为传递依赖项,这意味着它们依赖实现request的另一个库。

他说:“因而,request出现在几乎所有流行的库和框架的程序包树中,但是我不清楚该代码的实际使用量有多少。JavaScript生态系统实在太庞大了,众多依赖项之间太相互依赖了,以至于谁也无法准确地了解实际上应为多少剩余的模块依赖request而操心。

Rogers说:“即使没有新的模块依赖request,即使没有现有模块的新版本依赖request,request也会保留数量非常多的依赖项。

“由于模块的旧版本永远不从库注册中心删除出去,因此模块的旧版本将继续依赖request的旧版本。

Rogers预计用户的使用惯性很强,新模块会实现request,旧模块会继续发布更新而不更换request。

他说:“这就是今天我弃用该软件包的原因。request处于维护模式已有将近一年,会继续无限期处于维护模式。弃用只是以警告的形式出现在用户面前,提醒他们在依赖被弃用的代码。

Rogers被问及他和其他维护者如何应对request的退役时表示,一年前宣布计划弃用时,该项目的贡献者大多数对这个项目就已有了心理准备。

他说:“这是切实而重大的变化,这摈弃了我们在下一个重大版本会是什么样或者我们可能如何改变request以采用新模式方面的种种想法和思路。

“我无法代表所有维护者发言。对我来说,request已经过时,我为编写了它而备感自豪。迄今为止没有几个库得到如此广泛地采用或认可。但是墨守成规没有任何意义。现在request对JavaScript能做的最大贡献就是为大家编写的所有新颖的更好的库腾出空间,弃用它应该会作出这样的贡献。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多