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
相關文章
相關標籤/搜索