什么是 Volta

Volta 是一种管理 JavaScript 命令行工具的便捷方式。

volta 的特点:

  • 速度
  • 无缝,每个项目的版本切换
  • 跨平台支持,包括 Windows 和所有 Unix shell
  • 支持多个包管理器
  • 稳定的工具安装-无需每次升级都重新安装!
  • 可扩展性挂钩用于特定于站点的定制

为什么选择 Volta?

使用 Volta,您可以一次选择 Node 引擎,然后不再担心它。您可以在项目之间切换,而不必手动切换 nodejs 版本。你可以在工具链中安装 npm 二进制包,而不必定期重新安装它们,或者弄清楚它们停止工作的原因。

快速设置和切换 Node 版本

获取并使用特定版本的 Node:

volta install node@14

您应该立即注意到该工具的响应速度有多快。您的开发时间是宝贵的 JavaScript 开发人员应该拥有时髦的工具。

为合作者提供可复制的环境

Volta 允许你用一个命令为一个项目选择节点引擎和包管理器:

volta pin node@12

Volta 将 Node 引擎的准确版本保存在 package.json,这样你就可以把你的选择提交给 git。从那时起,每次在项目目录中运行 Node 时,Volta 都会自动切换到您选择的同一版本 的 Node。类似的。所有的合作者都可以通过在他们的开发机器上安装 Volta 来做同样的事情。

Install and forget

Volta 还允许您将最喜欢的二进制包作为命令行工具安装,而不必担心它们会干扰您的开发项目。更好的是,这些工具在安装时被固定到特定的 Node 引擎上,除非您显式地告诉它们,否则它们不会更改。这意味着一旦一个工具工作了,它就会继续工作。

npm install -g surge
surge -h

安装 Volta

在安装 Volta 前, 如果有使用其它的 nodejs 管理工具/nodejs,可以提前卸载(非必须)。

Unix 安装

在大多数 Unix 系统(包括 macOS)上,您可以使用一个命令安装 Volta:

curl https://get.volta.sh | bash

对于 bash, zsh

fish,这个安装程序将自动更新控制台启动脚本。如果您希望防止修改控制台启动脚本,请参阅跳过 Volta 设置。要手动配置你的 shell 使用 Volta,编辑你的控制台启动脚本如下:

  • VOLTA_HOME 变量设置为 $HOME/.volta
  • $VOLTA_HOME/bin 添加到 PATH 变量的开头

Windows 安装

对于 Windows,下载并运行 Windows 安装程序并按照说明操作。

Volta 的功能依赖于创建符号链接,所以你必须:

Windows 下的 linux 子系统

如果您在 Linux 的 Windows 子系统中使用 Volta,请遵循上面的 Unix 安装指南。

使用 Volta

Volta 的工作是管理 JavaScript 命令行工具,如 node、npm、yarn 或作为 JavaScript 包的一部分发布的可执行文件。

与包管理器类似,Volta 会根据当前目录跟踪您正在处理的项目(如果有的话)。Volta 工具链中的工具会自动检测您所处的项目是否使用特定版本的工具,并为您路由到正确的工具版本。

管理您的工具链

您可以使用两个命令控制由 Volta 工具链管理的工具: Volta installVolta uninstall

安装 node 引擎

要将工具安装到工具链中,需要设置该工具的默认版本。Volta 将始终使用这个默认值,除非您在一个已配置 Volta 使用不同版本的项目目录中工作。当您选择默认版本时,Volta 也会将该版本下载到本地缓存中。

例如,您可以选择 node 的确切版本作为默认版本:

volta install node@14.15.5

你不需要指定一个精确的版本,在这种情况下,Volta 会选择一个合适的版本来匹配你的请求:

volta install node@14

你也可以指定最新版本,或者甚至完全不选择版本,Volta 将选择最新的 LTS 版本:

volta install node

一旦您运行了这些命令中的一个,在您的 PATH 环境(或 Windows 中的 PATH)中由 Volta 提供的节点可执行文件将在默认情况下自动运行您选择的 node 版本。

同样地,你可以使用 volta install npmvolta install Yarn 分别选择 npm 和 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 为您提供了全局包安装的便利,但没有危险。

例如,你可以使用 npm i -g typescript 安全地安装 TypeScript,并享受直接调用 tsc 的便利无需担心项目的包脚本可能意外地依赖于您的机器的全局状态。

Pnpm 支持

对 pnpm 的支持目前是实验性的。要启用该功能,请确保环境变量 VoLTA_FEATURE_PNPM 设置为 1。在 Windows 上可以添加到环境变量中。在 Linux/Mac 上,您可以在配置文件脚本中设置该值(例如 .bash_profile.zshrc 或类似的脚本)。

已知的限制

全局安装:目前不支持全局安装(例如 pnpm install -g),并且会导致错误。

迁移:目前还没有自动迁移功能,因此如果您以前将 pnpm 作为 Volta 全局文件安装,则需要通过调用 Volta install pnpm 手动重新安装它。在启用支持并重新安装之前,您可以通过 volta uninstall pnpm 卸载之前安装的 pnpm 包。一旦切换到本机 pnpm 支持,由于目前缺乏卸载实现,可能无法通过调用相同的命令来删除孤立的旧 pnpm 包。

Volta 命令

Volta 1.1.1
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
run Run a command with custom Node, npm, pnpm, and/or Yarn versions
help Prints this message or the help of the given subcommand(s)

volta fetch 将工具缓存到本地机器以供离线使用

volta install 设置工具的默认版本

volta uninstall 从工具链中卸载工具

volta pin 固定项目的运行时或包管理器

volta list 显示当前工具链

volta completions 命令补全

volta which 查看 volta 安装的工具的目录

volta setup 为当前用户/shell 启用 volta

volta run 运行带有自定义Node、npm、pnpm和/或Yarn版本的命令

volta help 输出帮助信息

结束语

如果你在工作中遇到有多个项目使用不同版本的 nodejs,就来试试Volta吧!

比 nvm 更好用的 node 版本管理工具的更多相关文章

  1. Node版本管理工具-NVM的安装与使用(windows系统)

    友情提示:为避免踩坑,建议浏览全文后动手操作!!! 一.nvm是什么 看到这篇文章的猿/媛们肯定不会问这个问题了,但是我还是要说,哈哈哈! 无论工作还是干嘛,就不会一直做项目,所以肯定也不会一直用一个 ...

  2. 强力解决使用node版本管理工具 NVM 出现的问题(找不到 node,或者找不到 npm)

    nvm是好用的Nodejs版本管理工具, 通过它可以方便地在本地调换Node版本. 2020-05-28 当前长期稳定版12.17.0,于是 nvm install 12.17.0 然后C:/nvm/ ...

  3. Node版本管理工具 - Nvm的下载、安装配置与使用

    1.业务背景 不同时期的项目使用的Node版本也不一样,随着版本的更新一直在使用的Node版本也在不断升级,本文介绍一个Node版本的管理工具,可自由切换版本. 2.Nvm下载与安装 1)下载 下载地 ...

  4. 安装node版本管理工具之NVM

    nvm是个啥?nvm是一个可以让你在同一台机器上安装和切换不同版本node的工具. 你可能会问,为什么会有这个工具?有时候在开发的时候,对node版本有强制要求,有的要求用最新版本,有的要求用稳定版本 ...

  5. node版本管理工具nvm安装使用教程

    一些安装包依赖一定的node版本,可以采用nvm管理node, 可以快速的进行版本切换. 操作系统: windows10, x64 常见版本工具: 1. nvmw, nvmm install node ...

  6. node版本管理工具fnm踩坑

    我建议是直接不要用fnm,还是老老实实用nvm吧 fnm下下来电脑防火墙会报毒(用github上推荐的cargo install fnm方式下载,并非第三方安装) Trojan.Generic.HgE ...

  7. nvm —— Node版本管理工具

    nvm下载 下载地址 下载nvm-setup.zip文件 nvm安装 1.以管理员身份运行install.cmd文件,设置文件路径 root: C:\Users\Administrator\AppDa ...

  8. node版本管理工具nvm安装以及使用

    curl命令安装 curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash 或者 使用wg ...

  9. nvm: node版本管理工具

    安装nvm   curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash node 版本切 ...

  10. node版本管理工具 -- nvm安装与使用

    新老项目维护时node环境切换麻烦怎么办? 不用担心,有了nvm ,一个命令就能切换node版本. 首先需要安装nvm工具,进入下载地址. 下载之后安装nvm. nvm安装之后还需要配置两个环境变量( ...

随机推荐

  1. GitHub上SSH keys和Deploy keys的区别

    平时安装一个git然后去GitHub进行SSH keys 配置最后就开始使用,然后换一台电脑再使用$ ssh-keygen -t rsa -C "your email"生成一个ss ...

  2. web自动化08-下拉选择框、弹出框、滚动条

    1.下拉选择框操作 下拉框就是HTML中<select>元素:   先列需求: 需求:使用'注册A.html'页面,完成对城市的下拉框的操作 1).选择'广州' 2).暂停2秒,选择'上海 ...

  3. web自动化06-键盘操作

    键盘操作 1.说明: 1). 模拟键盘上一些按键或者组合键的输入 如:Ctrl+C .Ctrl+V: 2). Selenium中把键盘的按键都封装在Keys类中 2. Keys类 导包:from se ...

  4. 【VS Code 与 Qt6】QCheckBox的图标为什么不会切换?

    本篇专门扯一下有关 QCheckBox 组件的一个问题.老周不水字数,直接上程序,你看了就明白. #include <QApplication> #include <QWidget& ...

  5. OSI7层模型和TCP/IP模型

    前言 在计算机网络领域中,OSI7层模型和TCP/IP模型是两个重要的概念.本文将对这两个模型进行介绍和比较,让大家了解它们的区别和联系. 目录 前言 OSI7层模型 TCP/IP模型 OSI7层模型 ...

  6. 使用 Sa-Token 实现 [记住我] 模式登录、七天免登录

    一.需求分析 如图所示,一般网站的登录界面都会有一个 [记住我] 按钮,当你勾选它登录后,即使你关闭浏览器再次打开网站,也依然会处于登录状态,无须重复验证密码: 本文将详细介绍在 Sa-Token中, ...

  7. 使用Git进行版本控制和协作:代码共享、协作和版本管理

    目录 引言 Git 是一款开源的分布式版本控制系统,它已经成为了现代软件开发中必不可少的工具之一.在这篇文章中,我们将介绍如何使用 Git 进行版本控制和协作,以实现代码共享.协作和版本管理.Git ...

  8. Python中使用支付宝支付

    准备 # 支付宝文档 https://opendocs.alipay.com/open/270/105898?pathHash=b3b2b667 # 在沙箱环境下实名认证 https://openho ...

  9. .NET EF查询需要注意的点

    记录下在公司中混乱使用跟踪和非跟踪查询的坑. var blog = context.Blogs.Single(b => b.BlogId == 1); // 查询时放回一条 如果存在多条引发异常 ...

  10. 常用语言的线程模型(Java、go、C++、python3)

    背景知识 软件是如何驱动硬件的? 硬件是需要相关的驱动程序才能执行,而驱动程序是安装在操作系统内核中.如果写了一个程序A,A程序想操作硬件工作,首先需要进行系统调用,由内核去找对应的驱动程序驱使硬件工 ...