GitHub的npm產品經理Edward Thomson在最近舉行的GitHub Satellite 2020大會上解釋了npm被GitHub收購後對JavaScript開發者的影響,以及如何在開源和非開源的工作中充分發揮GitHub的作用。
GitHub在今年4月完成了對npm的收購。GitHub隨後表示計劃從三個方面發展npm:基礎設施、開發者體驗和社區。Thomson在講話中詳細介紹了GitHub目前爲改進npm CLI和npm註冊表所採取的行動。
Thomson對CLI方面所做的努力發表了評論:
現在,團隊正在開發npm v7,CLI的下一個版本。這實際上是一個非常大的轉變。CLI團隊正在進行一些重大的重構,對正確性和性能進行了改進。他們正在讓軟件變得更安全,並試圖提高與生態系統中其他工具的兼容性。
npm CLI團隊正在改進npm audit的體驗,Thomson通過展示npm v6和npm v7之間不同的CLI輸出來演示新的功能。在npm v6中,minimist包的漏洞以表格形式顯示出來。將minimist作爲依賴項的包都出現了這個問題。在npm v7中,有關安全漏洞以及如何修復它們的信息以更簡潔的形式顯示出來。minimist的安全問題只顯示一次。npm v7意識到minimist是導致問題的唯一包,所以會提示用戶運行npm audit fix來自動修復問題。
npm 6可能會推薦通過依賴更新來修復問題——一個包含重大變化的更新,可能需要開發人員重構他們的代碼,但npm 7可能會嘗試通過降級包版本來自動修復問題。此外,npm v7可以更好地與yarn(及yarn鎖文件)共存。Thomson解釋說:
我們希望確保這兩個工具之間能夠儘可能完美地兼容。這兩個命令行接口(yarn和npm)曾經是相互獨立的,但是在npm 7中,我們將看到它們在兼容性方面的巨大改進。
npm v7也將支持工作區特性,這是一個在大型項目中很流行的特性。npm v7將至少支持yarn工作區特性,併爲v8中的更高級的工作區特性奠定基礎。有了工作區特性,開發人員只需要運行一次安裝腳本(例如,yarn install)就可以配置多個包,並一次性安裝所有包。多個項目可以使用單個鎖文件而不是使用多個不同的鎖文件,這樣就可以減少衝突,評審起來也更容易。
至於npm註冊中心,GitHub嘗試更好地整合npm和GitHub,加強npm的基礎設施,讓npm的付費客戶轉到GitHub。Thomson解釋說:
npm有幾種私人託管包付費計劃,我們準備讓付費的npm客戶轉到GitHub。這樣我們就可以讓每種代碼庫發揮它們各自的優勢,GitHub成爲託管私有包的一個很好的解決方案,而npm繼續專注於成爲開源包的一個很好的公共註冊中心。
Thomson邀請開發者針對GitHub的這些舉措提供反饋。開發者可以查看npm RFC和npm博客。Thomson的演講視頻可以在網上找到,其中包含了GitHub針對npm的舉措的更多信息。
原文l鏈接:
The JavaScript Coder’s Guide to Getting More from GitHub and Npm - GitHub Satellite 2020