GitHub喜提npm:最大的包管理工具,JS版的「pip」

刚刚,全球最大的代(tong)码(xing)托(jiao)管(you)平台 GitHub 发布公告称,该公司已经签署了一份收购 npm 的协议,后者是深受开发者欢迎的 JavaScript 包管理服务平台。收购完成后,npm 公共注册表用户能够继续无偿使用,付费用户能够在不久以后将私有 npm 包迁移到 GitHub Package。
机器之心报道,参与:思、张倩、Jamin。

npm 的全称是 Node Package Manager,是一个基于 Node.js 的包管理器,建立初衷是让 JavaScript 开发人员可以更容易地分享和重用代码。

凭着 npm 团队在过去 10 年的工做,以及成千上万的开源开发人员和维护人员的贡献,该平台如今拥有 130 万个软件包,每个月下载量达 750 亿次。他们的努力使得 JavaScript 成为世界上最大的开发者生态系统。

GitHub 在博文中表示,「GitHub 很荣幸参与书写 npm 故事的下一篇章。咱们将帮助 npm 继续扩展以知足快速增加的 JavaScript 社区的需求。」对于天天使用 npm 公共包管理器的数百万开发人员而言,开源包将一直可用且始终免费。

为何 npm 如此重要?

对于众多开发者而言,npm 并不陌生。即便咱们经常使用 Python 或 C++等其它语言,但在执行某些 JS 开源项目时,也会遇到 npm。若是咱们熟悉 JavaScript,那么 npm 几乎是不可或缺的软件包管理工具。能够说,npm 就相似于 Python 中的 pip。

维护与建立这一包管理器的公司,就是 npm 了。由于 npm 托管的超大代码库与软件注册表,JS 开发者能够借鉴开源软件包,而不须要从头构建应用程序。

若是咱们想建立一个开源软件包,那么一般的作法是:将代码上传到 GitHub,并实时维护它。同时,将稳定版的代码也上传到 npm 上,从而方便开发者安装与管理。二者实现了不一样的功能,GitHub 负责追踪代码修正与版本的迭代,而 NPM 负责管理整个安装包。

JS 是最大的开发者社区之一,而 npm 是世界上最大的软件注册表,在「下载包、安装包、上传包」这一流程中,npm 是开发生态不可或缺的一环。开发者不须要头疼软件包的各类依赖项与版本信息,都交给它就好了。

通常来讲,npm 由注册表、命令行工具等几个独立的模块组成。注册表是一个巨大的数据库,保存了每一个软件包的信息;命令行工具则容许开发者经过终端与 npm 进行交互。有了这几个模块,管理开源包、分享代码、管理私有软件包、管理依赖信息等等都不成问题。

npm 与 pip 其实很是像,只不过一个用于 JS,一个用于 Python。二者安装方式稍微有一点不一样,npm 会把软件包安装在当前目录的 node_modules 下,pip 会把软件包安装在当前 Python 开发环境的 site-packages 中。换而言之,npm 不会对环境进行修改,彷佛它更加「无污染」?node

npm 这个工具确实很是好用,NPM 公司在 2015 年也得到 800 万风投资金,它与 GitHub 同样对开源包免费,而对托管的私有代码包收费。其优点在于,企业用户能够经过相同的工具管理开源包与私有包。

如今,GitHub 收购了 npm,那么它们之间会不会有必定的整合呢?毕竟去年 GitHub 还特地推出了 免费软件包管理服务 GitHub Package Registry

收购以后走向何方?

对于用户来讲,你们最关心的固然是收购对本身的影响。对此,GitHub CEO Nat Friedman 在官方博客中表示,对于天天使用公共 npm 注册表(registry)的数百万开发者,npm 将一直可用,并且始终免费。收购完成以后的工做重点将放在如下几个方面:

  • 投资托管服务器基础设置和平台。JavaScript 生态很是庞大,并且还在迅速扩张,所以须要一个坚实的注册系统。GitHub 将进行必要的投资,确保 npm 快速、可靠、可扩展。git

  • 提高核心体验。GitHub 将致力于提高开发者和维护者的平常体验,同时继续支持 npm v7 CLI 上已经开展的重要项目,并且这些仍将是免费、开源的。激动人心的新特性包括 Workspaces 以及在包发布流程、多因素身份验证体验上的进一步改进。github

  • 参与社区活动。他们将积极地与 JavaScript 社区合做,从中得到优秀的改进方案,以此来打造更好的 npm。数据库


GitHub 表示,他们将和 npm 一块儿努力,提高开源软件供应链的安全性。此外,GitHub 还打算将其打赏功能(GitHub Sponsors)扩展到 npm 的生态中。

对于付费使用 npm Pro、Teams、Enterprise 的私人注册表用户,GitHub 和 npm 也将继续支持。此外,GitHub 正大力投资 GitHub Package,这是一个彻底集成了 GitHub 的多语言包管理器。今年晚些时候,GitHub 将容许 npm 的付费用户将他们的私有 npm 包迁移到 GitHub Package,使得 npm 专一成为一个开放、免费的 JavaScript 软件包管理工具。

为了听取你们的意见,GitHub 还表示将于近几日在 reddit 上举办一场 AMA(Ask Me Anything)。

网友评论

针对这次收购,网友们的见解褒贬不一,但单从评论来看,支持这次收购的仍是占大多数。

有网友表示,现阶段的 npm 处在较为尴尬的阶段。从公司经营的角度来讲,npm 的表现并非特别值得称赞。但相比于被 Amazon、Google 或是 Facebook 收购,被 Github 收购还算上策,至少能够保留些独立性。


而 npm 做为软件供应链中的重要支柱环节,其核心做用无须赘述,但背后公司的经营情况值得深究。有网友表示,该公司的大部分资金来源于风投,其商业模式的壁垒远没想象的那么高。


有人甚至针对 NPM 的经营情况进行了简单的思想模拟,以代表为什么看好这次收购。公司运营须要资金,以如今 npm 公司的模式,想要维持运营只能吸纳愈来愈多的投资者,而投资者的逐利性会反向影响公司以后的发展路线,资金的不肯定性会致使各个利益相关方之间的冲突。如此看来,这样的发展进程可能对整个社区都不是好事,更别说保有独立性。


不看好的也有,好比单纯的认为 Github 的东家微软是一家具备较强封闭性的公司,收购以后难以保持原有中立且高效的发展速度。

固然,对于这次收购褒贬不一,是好是坏势必要交给时间去验证。

参考连接:
npm

https://github.blog/2020-03-16-npm-is-joining-github/
https://news.ycombinator.com/item?id=22594549
相关文章
相关标签/搜索