NPM作者推出全新的JavaScript包管理器!

最近在愛爾蘭舉行的 NodeConf EU 上,NPM 作者正式宣佈,推出全新的 JavaScript 包管理器 vlt 及 Serverless 登錄檔 vsr!
首先,我們隆重推出 vlt——一款全新的、免費且開源的 JavaScript 包管理器。vlt 超越了傳統的包管理器,奠定了一個強大、整合的平臺基礎,旨在簡化你的開發流程。我們有過類似的經驗。我們的團隊成員包括 npm 的創造者和維護者,對依賴管理的開發工具有著深厚的理解和極大的關注。
此次首發版本帶來了令人印象深刻的 Node.js 依賴安裝和管理能力。在大多數情況下,vlt 可以直接替換你現有的包管理器。乍一看,vlt 客戶端可能與普通的包管理器類似,但我們興奮地推出了一些創新功能,如全新的依賴查詢選擇器語法、各種匯出格式(包括 Mermaid)以及直觀的圖形介面體驗,幫助開發者更輕鬆地理解專案的依賴關係圖。

vlt:全新的 JavaScript 包管理器

vlt 是一款免費的開源 JavaScript 包管理器,旨在超越傳統的包管理器,為開發者提供強大而整合的開發平臺。

主要特點:

  • 高效能的安裝和管理:提供出色的 Node.js 依賴安裝和管理能力,大多數情況下可直接替代現有的包管理器。
  • 創新的依賴查詢選擇器語法:簡化了依賴項的查詢和管理,使開發者能夠更靈活地處理專案依賴。
  • 豐富的匯出格式:支援包括 Mermaid 在內的多種匯出格式,方便生成依賴關係圖。
  • 直觀的 GUI 介面:透過圖形介面,幫助開發者輕鬆理解和探索專案的依賴關係圖。

安裝方法:

要嘗試使用 vlt,只需在終端中執行以下命令:

npm install -g vlt

# 注意:我們也意識到使用 npm 安裝 vlt 的諷刺意味……

安裝完成後,即可開始體驗 vlt 帶來的高效包管理體驗。

主要功能

提供了豐富的客戶端 CLI 指令:
提供了多種依賴關係視覺化效果:
  • 可讀格式:以樹結構展示資料,使巢狀關係更容易理解,方便開發者快速掌握依賴結構。
  • JSON:適合在系統間進行資料交換,以可讀型和機器友好的方式表示資訊,確保資料的無縫傳遞。
  • Mermaid:使用 Mermaid 語法建立視覺化圖表,幫助開發者展示覆雜的資料流或層次結構,讓依賴關係一目瞭然。
vlt 的圖形介面(GUI)使得探索和理解專案的依賴關係變得更加簡單直觀。
透過命令列使用如下查詢語句,可以在瀏覽器中檢視具體專案的依賴關係圖:

vlt query 

'[name="my-project"] > :is(:project > *[name="tap"][version="21.0.1"])'

 --view=gui

或者,你也可以快速開啟 GUI 以儀表盤檢視檢視你的專案:

vlt gui

這將啟動圖形介面,讓你更輕鬆地管理和分析專案的依賴情況。

vsr:下一代 Serverless 包登錄檔

除了 vlt 客戶端,本次還推出了一個與 npm 相容的 Fair Source Serverless 包註冊中心——vsr。該平臺利用無伺服器計算的強大功能,提供了一個可伸縮、安全且成本效益高的包託管解決方案。
vsr 支援多種開發和託管方式,無論你是想在本地開發、自行託管,還是為你管理一個例項,我們都能滿足你的需求。
vsr 的初始版本提供了一個獨特的許可權模型,使開發者可以細粒度地控制各種功能的訪問許可權。細粒度訪問令牌(Granular Access Tokens)為超越傳統團隊/維護者角色的用例建立了新的角色,並提供了只讀訪問私人包的能力,這是現有註冊中心所無法實現的。
無論你是個人開發者、小型團隊,還是大型企業 vsr 都可以幫助你實現更靈活、更安全的包管理和分發。

主要優勢:

  • Serverless 架構:利用無伺服器技術,實現高擴充套件性和降低運營成本,無需維護傳統伺服器。
  • 高度相容vsr 與現有的 npm 客戶端相容,支援 npm、yarn、pnpm、deno 和 bun 等工具,確保開發者的平滑過渡。
  • 安全 (Secure)vsr 確保安全地儲存和管理依賴項,避免與公共註冊中心相關的風險。提供了獨特的許可權模型,允許開發者細粒度地控制訪問許可權。透過 Granular Access Tokens,可以為不同的使用場景設定特定的許可權,例如只讀訪問私有包。
  • 掌控 (Controlled) :你可以完全掌控訪問許可權,確保只有授權使用者或系統能夠釋出、訪問或修改包。非常適合出售你自己的軟體和軟體訂閱服務。
  • 本地執行 (Local) :在本地執行私有包,用於測試、預釋出和持續整合,確保各階段的穩定性。
  • 可靠 (Reliable) :降低對公共註冊中心的依賴,減少因停機或關鍵包移除帶來的風險。
  • 穩定 (Stable) :鎖定和管理特定版本的包,確保跨不同環境(開發、測試和生產)的穩定性和一致性。
  • 快速高效 (Fast & Efficient) :由於接近性和快取最佳化,vsr 相較於公共註冊中心提供更好的效能,提高了依賴安裝速度。
  • 受監管 (Regulated) :在投入生產前可對第三方庫進行審查和批准,強制執行使用策略。
  • 合規 (Compliant) :提供一個審計路徑,以追蹤包的使用情況、變更和版本歷史,確保符合法律、安全和業務要求。
  • 可定製和靈活 (Customizable & Flexible): 根據特定組織需求定製無伺服器註冊中心,例如與內部系統整合和新增身份驗證機制。

部署方式:

  • 本地開發:適合個人或小型團隊在本地環境中進行包管理和測試。
  • 自行託管:企業或團隊可以在自己的伺服器上部署 vsr,掌控資料和訪問許可權。
  • 託管服務:如果希望更省心的解決方案,可以選擇由官方提供的託管服務。

細粒度訪問令牌 (Granular Access Tokens)

細粒度訪問令牌(GAT)提供了對誰可以與無伺服器註冊中心互動以及如何互動的精確控制。透過這些令牌,可以定義使用者或系統能夠執行的操作範圍,確保訪問許可權與組織政策和角色保持一致。
客戶令牌 (Customer Tokens):只讀 (Read-only)
只讀令牌提供安全、受控且可撤銷的訪問許可權,支援企業在保護智慧財產權的同時,管理第三方的訪問。
  • 讀取和下載他們被授予訪問許可權的包
  • 輪轉和移除與其賬戶相關聯的令牌和個人資料資訊
團隊令牌 (Team Tokens):讀寫 (Read & Write)
建立只讀和讀寫團隊令牌,為組織內部的包管理提供全面且靈活的訪問控制,允許協作和安全的包管理。
  • 釋出、更新和刪除包的許可權
  • 根據特定團隊角色或環境控制訪問許可權
這些細粒度訪問令牌讓企業能夠嚴格控制包的訪問和分發,確保只有授權的使用者或系統能夠執行特定操作,從而提升了安全性和管理效率。

API 管理

透過 REST API 實現包和使用者管理,為私有和開源包提供高效的工作流、安全的資料處理和強大的控制功能。

對比 Verdaccio 和 JSR

為了更好地瞭解 VSR 的競爭力,這裡對比了 VSR 與 Verdaccio 和 JSR 三個平臺的主要特點和優勢。
VSR 的優勢
  • 無伺服器 (Serverless) :VSR 支援無伺服器架構,降低了基礎設施維護的複雜性。
  • JavaScript 後端 :專門為 JavaScript 後端開發設計,提供更高的相容性和效能。
  • 細粒度訪問 (Granular Access) :提供精細的許可權控制功能,確保使用者和系統僅能執行授權的操作。
  • 代理功能 (Proxy Capabilities) :支援代理配置,提升包管理的靈活性和安全性。
Verdaccio 的優勢
  • 外掛支援 (Plugin Support) :Verdaccio 在外掛支援上非常強大,易於擴充套件和定製。
  • 事件/鉤子 (Events/Hooks) :提供豐富的事件和鉤子,便於整合和自動化處理。
  • 多雲功能 (Multi-Cloud Features) :支援多雲環境,增強了部署和管理的靈活性。
JSR 的優勢
  • TypeScript 支援 :JSR 在 TypeScript 支援方面表現出色,更適合現代前端開發者的需求。
  • API 文件 (API Documentation) :JSR 的 API 文件非常詳細,便於開發者快速上手和整合。
共同覆蓋的基本功能
  • 包釋出 (Package Publishing) :三大平臺均支援包的釋出,滿足基本的包管理需求。
  • 包安裝 (Package Installation) :均支援包的安裝,確保開發者能夠輕鬆獲取和使用所需的包。
  • Azure DevOps 上游整合 :都提供與 Azure DevOps 的整合,方便在 CI/CD 流程中管理包。

最後

瞭解更多內容:
  • vlt 官方網站:https://www.vlt.sh/client
  • vsr 官方網站:https://www.vlt.sh/serverless-registry

相關文章