作者:JiKun https://juejin.cn/post/
本文适合对命令行工具感兴趣的小伙伴阅读
是一种管理 JavaScript 命令行工具的便捷方式。
的特点:
使用 Volta,您可以一次选择 Node 引擎,然后不再担心它。您可以在项目之间切换,而不必手动切换 nodejs 版本。你可以在工具链中安装 npm 二进制包,而不必定期重新安装它们,或者弄清楚它们停止工作的原因。
快速设置和切换 Node 版本
获取并使用特定版本的 Node:
注意到该工具的响应速度有多快。开发时间是宝贵的 JavaScript 开发人员应该拥有时髦的工具。
为合作者提供可复制的环境
Volta 允许你用一个命令为一个项目选择节点引擎和包管理器:
Volta 将 Node 引擎的准确版本保存在 ,这样你就可以把你的选择提交给 git。从那时起,每次在项目目录中运行 Node 时,Volta 都会自动切换到您选择的同一版本 的 Node。类似的。所有的合作者都可以通过在他们的开发机器上安装 Volta 来做同样的事情。
Volta 还允许您将最喜欢的二进制包作为命令行工具安装,而不必担心它们会干扰您的开发项目。更好的是,这些工具在安装时被固定到特定的 Node 引擎上,除非您显式地告诉它们,否则它们不会更改。这意味着一旦一个工具工作了,它就会继续工作。
在安装 Volta 前, 如果有使用其它的 nodejs 管理工具/nodejs,可以提前卸载(非必须)。
Unix 安装
在大多数 Unix 系统(包括 macOS)上,您可以使用一个命令安装 Volta:
对于 bash, zsh 和 fish,这个安装程序将自动更新控制台启动脚本。如果您希望防止修改控制台启动脚本,请参阅跳过 Volta 设置。要手动配置你的 shell 使用 Volta,编辑你的控制台启动脚本如下:
Windows 安装
对于 Windows,下载并运行 Windows 安装程序并按照说明操作。
Volta 的功能依赖于创建符号链接,所以你必须:
Windows 下的 linux 子系统
如果您在 Linux 的 Windows 子系统中使用 Volta,请遵循上面的 Unix 安装指南。
Volta 的工作是管理 JavaScript 命令行工具,如 node、npm、yarn 或作为 JavaScript 包的一部分发布的可执行文件。
与包管理器类似,Volta 会根据当前目录跟踪您正在处理的项目(如果有的话)。Volta 工具链中的工具会自动检测您所处的项目是否使用特定版本的工具,并为您路由到正确的工具版本。
可以使用两个命令控制由 Volta 工具链管理的工具: 和 。
安装 node 引擎
要将工具安装到工具链中,需要设置该工具的默认版本。Volta 将始终使用这个默认值,除非您在一个已配置 Volta 使用不同版本的项目目录中工作。当您选择默认版本时,Volta 也会将该版本下载到本地缓存中。
例如,您可以选择 node 的确切版本作为默认版本:
不需要指定一个精确的版本,在这种情况下,Volta 会选择一个合适的版本来匹配你的请求:
也可以指定最新版本,或者甚至完全不选择版本,Volta 将选择最新的 LTS 版本:
运行了这些命令中的一个,在 PATH 环境(或 Windows 中的 PATH)中由 Volta 提供的节点可执行文件将在默认情况下自动运行选择的 node 版本。
同样地,你可以使用 和 分别选择 npm 和 Yarn 包管理器的版本。这些工具将使用您选择的 Node 的默认版本运行。
安装二进制包
使用 Volta,使用包管理器全局安装命令行工具也会将其添加到工具链中。例如, 包包含一个同名的可执行文件:
当您将一个包安装到工具链上时,Volta 会获取当前的默认 Node 版本,并将该工具固定到该引擎上(有关更多信息,请参阅包二进制文件)。Volta 不会改变工具的固定引擎,除非你更新工具,无论如何。这样,您就可以确信您安装的工具不会在您背后更改。
Volta 允许团队或协作者社区标准化他们在项目中使用的开发工具。
固定 Node 引擎
volta pin 命令允许您为项目选择 Node 引擎和包管理器版本:
Volta 会把这个放在你的 package.json,这样你就可以把你选择的工具提交到版本控制:
这样,每个使用 Volta 在项目上工作的人都会自动获得您选择的相同版本。
使用项目工具
node 和包管理器可执行文件并不是工具链中唯一的智能工具:工具链中的包二进制文件也知道您的当前目录,并尊重您所在项目的配置。

例如,安装 Typescript 包会将编译器 tsc 添加到你的工具链中:
根据你所在的项目,这个可执行文件会切换到项目选择的 TypeScript 版本:
因为 Volta 的工具链总是跟踪你在哪里,它确保你使用的工具总是尊重你正在做的项目的设置。这意味着您不必担心在项目之间切换时更改已安装软件的状态。
更重要的是,当 Volta 运行一个工具时,它会覆盖它的轨迹,确保你的 npm 或 Yarn 脚本永远不会看到你的工具链中有什么。
这两个特性的结合意味着 Volta 解决了全局包的问题。换句话说,Volta 为您提供了全局包安装的便利,但没有危险。
例如,你可以使用 安全地安装 TypeScript,并享受直接调用 tsc 的便利无需担心项目的包脚本可能意外地依赖于您的机器的全局状态。
对 pnpm 的支持目前是实验性的。要启用该功能,请确保环境变量 设置为 。在 Windows 上可以添加到环境变量中。在 Linux/Mac 上,您可以在配置文件脚本中设置该值(例如 、 或类似的脚本)。
已知的限制: 全局安装:目前不支持全局安装(例如 pnpm install -g),并且会导致错误。 迁移:目前还没有自动迁移功能,因此如果您以前将 pnpm 作为 Volta 全局文件安装,则需要通过调用 手动重新安装它。在启用支持并重新安装之前,您可以通过 卸载之前安装的 pnpm 包。一旦切换到本机 pnpm 支持,由于目前缺乏卸载实现,可能无法通过调用相同的命令来删除孤立的旧 pnpm 包
将工具缓存到本地机器以供离线使用
设置工具的默认版本
从工具链中卸载工具
固定项目的运行时或包管理器
显示当前工具链
命令补全
查看 volta 安装的工具的目录
为当前用户/shell 启用 volta
运行带有自定义Node、npm、pnpm和/或Yarn版本的命令
输出帮助信息
如果你在工作中遇到有多个项目使用不同版本的 nodejs,就来试试吧!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/188410.html