鲸腾FE,来自恒生鲸腾网络。是一支专注于 web 前端的开发团队,并在 web 前端领域积累了多年疑难问题解决经验。崇尚高效、优质、成长、自由、快乐。
前言
在我们的日常开发中经常会遇到这种情况:手上有好几个项目,每个项目的需求不同,然而不同项目必须依赖不同版的 NodeJS 运行环境。
基于这种情况,我们一般会使用 nvm
来安装和切换NodeJs。
最近发现了一个更好用的 node 版本管理器 --- Volta,相比于 nvm
, Volta
更合适团体开发,可以保证开发环境的统一。
介绍
欢迎来到 Volta!
Volta 是一种轻松管理 JavaScript 命令行工具的方法。
特征
- 速度⚡
- 无缝的,每个项目的版本切换
- 跨平台支持,包括 Windows 和所有 Unix shell
- 支持多个包管理器
- 稳定的工具安装——无需在每次 Node 升级时重新安装!
- 用于特定于站点的自定义的可扩展性挂钩
为什么使用 Volta?
Volta 的工作就是让你不碍事。
使用 Volta,您可以选择一次 Node 引擎,然后不再担心它。您可以在项目之间切换,而不必在 Node 之间手动切换。您可以在工具链中安装 npm 软件包二进制文件,而无需定期重新安装它们或找出它们停止工作的原因。
快速设置和切换 Node 引擎
获取并使用特定版本的 Node:
volta install node@14
您应该立即注意到该工具的响应速度。您的开发时间很宝贵!JavaScript 开发人员值得拥有快速的工具。????
协作者的可重现环境
Volta 允许您使用一个命令一次为项目选择 Node 引擎和包管理器:
volta pin node@12
Volta 将 Node 引擎的确切版本保存在您的文件中 package.json
,因此您可以将您的选择提交给 git。从那时起,每次您在项目目录中运行 Node 时,Volta 都会自动切换到您选择的相同版本的 Node。同样,您所有的合作者都可以通过在他们的开发机器上安装 Volta 来做同样的事情。
安装并忘记
Volta 还允许您将喜欢的软件包二进制文件安装为命令行工具,而不必担心它们会干扰您的开发项目。更好的是,这些工具在安装时被固定到特定的 Node 引擎上,除非你明确告诉它们,否则它们不会改变。这意味着一旦工具工作,它就会继续工作。
npm install -g surge
surge -h
它是如何工作的?
Volta 不使用任何花哨的操作系统功能或特定于 shell 的钩子。它建立在简单、经过验证的垫片方法之上。
每当您使用 Volta 安装工具时,它都会向您添加一个 shim PATH
,充当正确版本的工具的智能(和快速)路由器,并使用正确的 Node 引擎运行它。
Volta易于安装,没有外部依赖项,因为它作为一个单一的、快速的本机可执行文件内置在Rust中。
入门
Unix 安装
在大多数 Unix 系统上,您可以使用单个命令安装 Volta:
curl [https://get.volta.sh](https://get.volta.sh) | bash
对于bash、zsh和fish,此安装程序将自动更新您的控制台启动脚本。如果您希望防止修改控制台启动脚本,请参阅 跳过 Volta 设置 。要手动配置您的 shell 以使用 Volta,请将您的控制台启动脚本编辑为:
- 将
VOLTA_HOME
变量设置为$HOME/.volta
- 添加
$VOLTA_HOME/bin
到PATH
变量的开头
Windows 安装
对于 Windows,下载并运行 Windows 安装程序 并按照说明进行操作。
笔记
Volta 的功能取决于创建符号链接,因此您必须:
- 启用开发者模式(推荐)
- 以提升的权限运行 Volta(不推荐)
适用于 Linux 的 Windows 子系统
如果您在 Linux 的 Windows 子系统中使用 Volta,请遵循上面的 Unix 安装指南。
了解 Volta
Volta 的工作是管理您的 JavaScript 命令行工具,例如 node
、npm
、yarn
或作为 JavaScript 包的一部分提供的可执行文件。
与包管理器类似,Volta 根据您当前的目录跟踪您正在处理的项目(如果有的话)。当您处于使用特定版本工具的项目中时,Volta 工具链中的工具会自动检测,并负责为您路由到正确版本的工具。
管理您的工具链
您可以使用两个命令控制由 Volta 工具链管理的工具:volta install
和 volta uninstall
.
安装 Node 引擎
要将工具安装到您的工具链中,您需要设置该工具的默认版本。Volta 将始终使用此默认值,除非您在已将 Volta 配置为使用不同版本的项目目录中工作。当您选择默认版本时,Volta 也会将该版本下载到本地缓存。
例如,您可以选择一个确切的版本 node
作为您的默认版本:
volta install node@14.15.5
您不需要指定精确的版本,在这种情况下,Volta 会选择一个合适的版本来匹配您的请求:
volta install node@14
您还可以指定 latest
— 甚至完全放弃该版本,Volta 将选择最新的 LTS 版本:
volta install node
运行这些命令之一后,node
Volta 在您的 PATH
环境(或 Path
Windows)中提供的可执行文件将默认自动运行您选择的 Node.js 版本。
volta install npm
同样,您可以分别使用和选择 npm 和 Yarn 包管理器的版本 volta install yarn
。这些工具将使用您选择的默认 Node 版本运行。
安装软件包二进制文件
使用 Volta,使用包管理器全局安装命令行工具也会将其添加到工具链中。例如,该 vuepress
包包含一个同名的可执行文件:
yarn global add vuepress
当您将软件包安装到工具链时,Volta 会采用您当前的默认 Node 版本并将工具 固定到该引擎(有关更多信息,请参阅 软件包二进制文件 )。无论如何,除非您更新该工具,否则 Volta 不会更改该工具的固定引擎。这样,您就可以确信已安装的工具不会在您背后改变。
管理您的项目
Volta 允许团队或合作者社区对他们用于项目的开发工具进行标准化。
固定 Node 引擎
该 volta pin
命令允许您为项目选择 Node 引擎和包管理器版本:
volta pin node@12.20
volta pin yarn@1.19
Volta 将其存储在您的文件中 package.json
,因此您可以将您选择的工具提交给版本控制:
"volta": {
"node": "12.20.2",
"yarn": "1.19.2"
}
这样,使用 Volta 进行项目的每个人都会自动获得您选择的相同版本。
node --version # 12.20.2
yarn --version # 1.19.2
使用项目工具
和 node
包管理器可执行文件不是工具链中唯一的智能工具:工具链中的包二进制文件也知道您的当前目录,并尊重您所在项目的配置。
例如,安装 Typescript 包会将编译器可执行文件添加 tsc
到您的工具链中:
npm install --global typescript
根据您所在的项目,此可执行文件将切换到项目选择的 TypeScript 版本:
cd /path/to/project-using-typescript-3.9.4
tsc --version # 3.9.4
cd /path/to/project-using-typescript-4.1.5
tsc --version # 4.1.5
安全便利
因为 Volta 的工具链始终跟踪您的位置,所以它确保您使用的工具始终尊重您正在处理的项目的设置。这意味着您不必担心在项目之间切换时更改已安装软件的状态。
更重要的是,Volta 会在运行工具时覆盖其踪迹,确保您的 npm 或 Yarn 脚本永远不会看到您的工具链中的内容。
这两个特性结合起来意味着 Volta解决了全局包的问题。换句话说,Volta 为您提供了全局包安装的便利,但没有危险。
例如,您可以安全地安装 TypeScript——npm i -g typescript
并享受 tsc
直接从控制台调用的便利——而不必担心项目的包脚本可能会意外地依赖于机器的全局状态。
享受!
Volta 命令
这是命令 volta
行二进制文件的命令参考,其语法如下:
The JavaScript Launcher ⚡
To install a tool in your toolchain, use `volta install`.
To pin your project's runtime or package manager, use `volta pin`.
USAGE:
volta [FLAGS] [SUBCOMMAND]
FLAGS:
--verbose
Enables verbose diagnostics
--quiet
Prevents unnecessary output
-v, --version
Prints the current version of Volta
-h, --help
Prints help information
SUBCOMMANDS:
fetch Fetches a tool to the local machine
install Installs a tool in your toolchain
uninstall Uninstalls a tool from your toolchain
pin Pins your project's runtime or package manager
list Displays the current toolchain
completions Generates Volta completions
which Locates the actual binary that will be called by Volta
setup Enables Volta for the current user / shell
help Prints this message or the help of the given subcommand(s)