专栏名称: 程序员的那些事
最有影响力的程序员自媒体,关注程序员相关话题:IT技术、IT职场、在线课程、学习资源等。
目录
相关文章推荐
程序员的那些事  ·  “应该禁止所有新项目使用 ... ·  2 天前  
程序员小灰  ·  我的项目,彻底爆了! ·  4 天前  
OSC开源社区  ·  国行版“苹果牌AI”有望使用腾讯、字节大模型 ·  6 天前  
51好读  ›  专栏  ›  程序员的那些事

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

程序员的那些事  · 公众号  · 程序员  · 2024-12-23 14:48

正文


最近在爱尔兰举行的 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



- EOF -

推荐阅读  点击标题可跳转

1、字节起诉前实习生,索赔 800 万

2、曾经对程序员最好的公司,撤退了

3、Linux 版微信选了这个 90 年代的“过气”框架

4、世界上最伟大最邪恶的软件发明,超10亿电脑安装

5、曾硬刚小米,估值 60 亿美元的独角兽被宣布破产


关注「程序员的那些事」加星标,不错过圈内事

点赞和在看就是最大的支持❤️