掘金本周最热

告别手动切换 Node 版本:从 nvm 迁移到 Volta

8.7内容质量
告别手动切换 Node 版本:从 nvm 迁移到 Volta

TL;DR · AI 摘要

Volta 可通过 package.json 自动绑定项目所需的 Node 版本,实现无需手动切换的智能版本管理。

核心要点

  • Volta 通过在 package.json 中添加 'volta' 字段自动管理 Node 版本,无需手动执行 nvm use。
  • 迁移后使用 volta pin [email protected] 可将版本绑定至项目目录,团队协作更一致。
  • 全局工具应使用 volta install 而非 npm install -g,避免版本污染和依赖冲突。

结构提纲

按章节快速跳转。

  1. 前端开发中多个项目使用不同 Node.js 版本是常态,nvm 需手动切换,易出错且效率低。

  2. §Volta 的核心优势

    Volta 将 Node 版本配置写入 package.json,进入项目目录即自动生效,实现无感版本切换。

  3. 使用 nvm list 查看已安装版本,关闭所有 Node 进程后卸载 nvm,确保环境干净。

  4. 通过 winget install Volta.Volta 安装 Volta,再用 volta install [email protected] 设置全局默认版本。

  5. 使用 volta pin [email protected] 和 volta pin [email protected] 可在 package.json 中固定版本。

  6. 推荐使用 volta install 替代 npm install -g,确保全局工具由 Volta 统一管理。

思维导图

用一张图看清主题之间的关系。

查看大纲文本(无障碍 / 无 JS 友好)
  • 从 nvm 迁移到 Volta
    • 核心机制
      • 基于 package.json 的版本绑定
      • 自动切换,无需手动命令
    • 迁移流程
      • 备份 nvm 已安装版本
      • 卸载 nvm 并清理环境
      • 安装 Volta 并设置默认版本
    • 最佳实践
      • 使用 volta pin 固定项目版本
      • 全局包用 volta install 管理

金句 / Highlights

值得收藏与分享的关键句。

  • Volta 会自动根据项目中的 package.json 内的 volta 字段切换 Node 版本,无需记忆或手动操作。

    第 5 段

    ⬇︎ 下载 PNG𝕏 分享到 X
  • 使用 volta pin 命令可将 Node 或包管理器版本绑定到项目,团队成员拉取代码后自动适配相同环境。

    第 8 段

    ⬇︎ 下载 PNG𝕏 分享到 X
  • 全局工具应通过 volta install 安装,避免因 npm -g 安装导致版本冲突或环境污染。

    第 9 段

    ⬇︎ 下载 PNG𝕏 分享到 X
#Node.js#Volta#前端工程化#版本管理
打开原文

告别手动切换 Node 版本:从 nvm 迁移到 Volta从 nvm 迁移到 Volta:让 Node 版本跟着项目自 - 掘金

![Image 1: 稀土掘金Image 2: 稀土掘金](https://juejin.cn/post/7637354393595166730)

  • * 搜索历史 清空

* 创作者中心

  • 写文章
  • 发沸点
  • 写笔记
  • 写代码
  • 草稿箱

创作灵感 查看更多

  • 登录 注册 ## 首次登录 / 注册免费领取 登录 / 注册

告别手动切换 Node 版本:从 nvm 迁移到 Volta

半砚松风

2026-05-08 1,380 阅读4分钟

关注

从 nvm 迁移到 Volta:让 Node 版本跟着项目自动切换

做前端开发时,多个项目使用不同 Node.js 版本几乎是常态。

比如有的老项目还停留在 Node 14.x,有的项目依赖 Node 16.x,新项目又可能要求 Node 22+。如果每次进入项目都要手动切换版本,不仅麻烦,还很容易忘。

我之前一直使用的是 nvm,它能解决多版本安装的问题,但版本切换依赖手动执行命令。一旦进入项目后忘记切换 Node 版本,轻则安装依赖报错,重则出现一些很难定位的构建问题。

所以这次我决定把本地 Node 版本管理从 nvm 迁移到 Volta

为什么选择 Volta

Volta 也是一个 Node.js 版本管理工具,但它和 nvm 的使用体验不太一样。

它最大的特点是:可以把项目需要的 Node 版本写进 package.json,之后只要进入项目目录,Volta 就会自动使用项目指定的版本。

也就是说,迁移完成后,基本不需要再记住“这个项目应该用哪个 Node 版本”,工具会替你处理。

迁移前准备

在卸载 nvm 之前,建议先查看当前已经安装过哪些 Node 版本:

powershell

体验AI代码助手

代码解读

复制代码

powershell
nvm list

把仍然需要使用的版本记录下来,比如:

text

体验AI代码助手

代码解读

复制代码

text
14.21.3
16.20.2
22.22.2

这些版本后面可以通过 Volta 重新安装。

另外,卸载前最好关闭所有正在运行的 Node 相关进程,避免因为进程占用导致卸载不完整。

卸载 nvm

先关闭 nvm 对 Node 的管理:

powershell

体验AI代码助手

代码解读

复制代码

powershell
nvm off

然后在 Windows 中卸载 NVM for Windows

text

体验AI代码助手

代码解读

复制代码

text
Windows 设置 -> 应用 -> 已安装的应用 -> NVM for Windows -> 卸载

卸载完成后,可以重新打开一个 PowerShell,确认 nvm 已经不可用。

powershell

体验AI代码助手

代码解读

复制代码

powershell
nvm version

如果命令不存在,说明 nvm 已经卸载完成。

安装 Volta

在 PowerShell 中执行:

powershell

体验AI代码助手

代码解读

复制代码

powershell
winget install Volta.Volta

安装完成后,重新打开终端,让环境变量生效。

可以通过下面的命令确认 Volta 是否安装成功:

powershell

体验AI代码助手

代码解读

复制代码

powershell
volta --version

设置默认 Node 版本

先安装一个较新的 Node.js 版本作为全局默认版本。

例如我这里使用的是:

powershell

体验AI代码助手

代码解读

复制代码

powershell
volta install [email protected]

安装完成后,可以检查当前默认版本:

powershell

体验AI代码助手

代码解读

复制代码

powershell
node -v

后续如果想修改默认 Node 版本,也继续使用 volta install

powershell

体验AI代码助手

代码解读

复制代码

powershell
volta install node@新版本

需要注意的是,这里的默认版本主要影响没有单独配置 Node 版本的目录。

为项目指定 Node 版本

进入某个项目目录,然后使用 volta pin 指定该项目需要的 Node 版本。

例如某个老项目需要 Node 14:

powershell

体验AI代码助手

代码解读

复制代码

powershell
cd D:\project\old-app
volta pin [email protected]

执行完成后,项目的 package.json 中会自动新增一个 volta 字段:

json

体验AI代码助手

代码解读

复制代码

json
{
  "volta": {
    "node": "14.21.3"
  }
}

之后只要在这个项目目录中执行:

powershell

体验AI代码助手

代码解读

复制代码

powershell
node -v

Volta 就会自动使用项目指定的 Node 版本。

这也是我从 nvm 迁移到 Volta 的主要原因:版本跟项目绑定,而不是靠人脑记忆。

查看已安装版本

可以使用下面的命令查看 Volta 当前管理的工具和版本:

powershell

体验AI代码助手

代码解读

复制代码

powershell
volta list all

如果某个项目 pin 了一个本地还没有安装过的 Node 版本,Volta 会在需要时自动处理对应版本。

全局包怎么安装

迁移到 Volta 后,全局包不建议再使用:

powershell

体验AI代码助手

代码解读

复制代码

powershell
npm install -g 包名

更推荐使用:

powershell

体验AI代码助手

代码解读

复制代码

powershell
volta install 包名

例如:

powershell

体验AI代码助手

代码解读

复制代码

powershell
volta install pnpm
volta install yarn

这样安装的全局工具会由 Volta 管理,行为更稳定,也不会被当前项目的 Node 版本影响。

如果想安装指定版本:

powershell

体验AI代码助手

代码解读

复制代码

powershell
volta install 包名@版本

例如:

powershell

体验AI代码助手

代码解读

复制代码

powershell
volta install [email protected]

项目内的包管理器版本

项目内安装依赖时,仍然使用项目自己的包管理工具,比如:

powershell

体验AI代码助手

代码解读

复制代码

powershell
npm install
yarn install
pnpm install

如果某个项目对包管理器版本也有要求,可以同样通过 volta pin 固定。

例如固定 Yarn 版本:

powershell

体验AI代码助手

代码解读

复制代码

powershell

执行后,package.json 中的 volta 字段会变成类似这样:

json

体验AI代码助手

代码解读

复制代码

json
{
  "volta": {
    "node": "14.21.3",
    "yarn": "1.22.22"
  }
}

这样团队成员拉取代码后,也能使用一致的 Node 和包管理器版本。

迁移后的体验

迁移完成后,我最明显的感受是:不用再频繁思考 Node 版本了。

以前进入项目后,第一反应是:

powershell

体验AI代码助手

代码解读

复制代码

powershell
nvm use 14.21.3

现在只需要进入项目目录,Volta 会自动根据 package.json 中的配置切换版本。

对同时维护多个新老项目的人来说,这个体验提升还是很明显的。

总结

这次从 nvm 迁移到 Volta,核心流程其实很简单:

  1. 记录原来 nvm 中需要保留的 Node 版本
  2. 卸载 NVM for Windows
  3. 安装 Volta
  4. 使用 volta install 设置默认 Node 版本
  5. 在项目中使用 volta pin 固定 Node 版本
  6. 使用 volta install 管理全局工具

如果你也经常在多个前端项目之间切换,尤其是项目 Node 版本差异比较大,Volta 会比手动切换版本省心很多。

它不只是“安装多个 Node 版本”,更重要的是把版本管理这件事从个人习惯变成项目配置。

标签:

前端

评论 16

Image 3: avatar
Image 3: avatar

0/ 1000

标点符号、链接等不计算在有效字数内

⌘ + Enter

发送

登录 / 注册 即可发布评论!

最热

最新

YukiLee

Front End Engineer @23 魔方

nvm也不需要人脑记忆啊,项目中添加 .nvmrc 配置文件即可,唯一不如的是没有自动切换,需要手动执行 nvm use 让 nvm 使用配置文件配置的版本

10小时前

点赞

评论

  • 屏蔽作者:YukiLee
  • 举报

半砚松风

作者

Volta已经不再维护,官方推荐使用mise,迁移至mise可参考![Image 6juejin.cn](https://juejin.cn/post/7638478761579642906 "https://juejin.cn/post/7638478761579642906")

1天前

1

评论

  • 屏蔽作者:半砚松风
  • 举报

莫三

node官网下载已经没有Volta的位置了

1天前

点赞

评论

  • 屏蔽作者:莫三
  • 举报

查看全部 16 条评论

Image 8 15

Image 9 16

Image 10 收藏

加个关注,精彩更新不错过~

Image 11: avatar
Image 11: avatar

关注

2 文章1.5k 阅读5 粉丝

加个关注,精彩更新不错过~

关注

已关注

私信

目录

收起

相关推荐

[求求你们🙏 ,别再换打包工具了? 1.2k阅读 · 10点赞](https://juejin.cn/post/7638459369085468699 "求求你们🙏 ,别再换打包工具了?")[在AI编程统治下,为什么UniApp开发更加需要这个框架? 1.6k阅读 · 14点赞](https://juejin.cn/post/7637134822670532635 "在AI编程统治下,为什么UniApp开发更加需要这个框架?")[多租户系统框架的界面分析设计 357阅读 · 8点赞](https://juejin.cn/post/7637795633910890522 "多租户系统框架的界面分析设计")[pnpm 11.0 正式登场:安装起飞、安全拉满、彻底告别 npm 依赖 464阅读 · 9点赞](https://juejin.cn/post/7636698441248407590 "pnpm 11.0 正式登场:安装起飞、安全拉满、彻底告别 npm 依赖")[我的第一次移动端 AI 办公:在地铁上把 Bug 修了 536阅读 · 7点赞](https://juejin.cn/post/7636984451567894538 "我的第一次移动端 AI 办公:在地铁上把 Bug 修了")

精选内容

[你写的代码没有测试,就像出门不锁门——Jest + Testing Library 从入门到不慌 kyriewen · 69阅读 · 2点赞](https://juejin.cn/post/7638535912314650678 "你写的代码没有测试,就像出门不锁门——Jest + Testing Library 从入门到不慌")[为什么需要 @types/react?解决“无法找到模块 react 的声明文件”报错 我叫黑大帅 · 46阅读 · 0点赞](https://juejin.cn/post/7638533972620312602 "为什么需要 @types/react?解决“无法找到模块 react 的声明文件”报错")[面试官:如果产品经理给你多个需求,怎么让AI去完成❓❓❓ Moment · 357阅读 · 4点赞](https://juejin.cn/post/7638516590836711451 "面试官:如果产品经理给你多个需求,怎么让AI去完成❓❓❓")[100小时,我做了一款AI CAD建模软件,开源! 徐小夕 · 306阅读 · 3点赞](https://juejin.cn/post/7638478761579118618 "100小时,我做了一款AI CAD建模软件,开源!")[Flutter面试事件队列,微任务队列以及事件循环相关问题及回答 WaywardOne · 45阅读 · 1点赞](https://juejin.cn/post/7638449796915347456 "Flutter面试事件队列,微任务队列以及事件循环相关问题及回答")

找对属于你的技术圈子

回复「进群」加入官方微信群

Image 14
Image 14

为你推荐

* [从 nvm 到 fnm:一个前端老兵的版本管理工具迁移实录](https://juejin.cn/post/7581779319572873254 "从 nvm 到 fnm:一个前端老兵的版本管理工具迁移实录") 从 nvm 到 fnm:一个前端老兵的版本管理工具迁移实录 引子:那个让我崩溃的早晨 某个周一早晨,我像往常一样打开终端准备开始工作。

[前端](https://juejin.cn/tag/%E5%89%8D%E7%AB%AF "前端")

* [Volta启动项目自动切换Node版本](https://juejin.cn/post/7615962569574760463 "Volta启动项目自动切换Node版本") 1. 为什么需要 Volta 自动切换 Node 版本 在前端开发中,不同项目往往依赖不同 Node.js 版本: 老项目可能只兼容 Node 14/16 新项目需要 Node 18+ 甚至更高 用

[前端](https://juejin.cn/tag/%E5%89%8D%E7%AB%AF "前端")[Node.js](https://juejin.cn/tag/Node.js "Node.js")

Image 15: Volta启动项目自动切换Node版本
Image 15: Volta启动项目自动切换Node版本

* [volta管理项目的node版本](https://juejin.cn/post/7360605812286685211 "volta管理项目的node版本") 1.介绍Volta 什么是volta Volta 是一个开源的工具,用于管理 JavaScript 工程中的工具链版本。它的主要功能是帮助开发人员在不同项目之间轻松地管理 Node.js、Yarn、n

[前端](https://juejin.cn/tag/%E5%89%8D%E7%AB%AF "前端")[JavaScript](https://juejin.cn/tag/JavaScript "JavaScript")

* [volta: 一个比 nvm 更好用的 node 版本管理工具](https://juejin.cn/post/7341720847880929307 "volta: 一个比 nvm 更好用的 node 版本管理工具") Volta, 一个比 nvm 更好用的 node 版本管理工具, 文章简单介绍了软件的安装和使用..

[前端](https://juejin.cn/tag/%E5%89%8D%E7%AB%AF "前端")[Node.js](https://juejin.cn/tag/Node.js "Node.js")[JavaScript](https://juejin.cn/tag/JavaScript "JavaScript")

Image 16: volta: 一个比 nvm 更好用的 node 版本管理工具
Image 16: volta: 一个比 nvm 更好用的 node 版本管理工具

* [比 nvm 更好用的 node 版本管理工具](https://juejin.cn/post/7275608678828916755 "比 nvm 更好用的 node 版本管理工具") 什么是 Volta, Volta 是一种管理 JavaScript 的命令行工具的便捷方式。volta 的优势是 Fast、Reliable 和 Universal

[前端](https://juejin.cn/tag/%E5%89%8D%E7%AB%AF "前端")[JavaScript](https://juejin.cn/tag/JavaScript "JavaScript")[Node.js](https://juejin.cn/tag/Node.js "Node.js")

* [使用volta自动切换node版本](https://juejin.cn/post/7412893752089411594 "使用volta自动切换node版本") 背景 在开发公司项目是,老项目使用的是16.18.0,新项目有的使用18X或其他版本,目前电脑上使用的是nvm,正在切换项目的使用需要手动切换,如果项目没有标注 版本号那么只能看报错或者一个个的验证,

[前端](https://juejin.cn/tag/%E5%89%8D%E7%AB%AF "前端")

* [项目node版本切换(Volta管理切换)](https://juejin.cn/post/7438864922514292786 "项目node版本切换(Volta管理切换)") 之前使用nvm管理node,发现每次有版本切换都要手动执行命令,volta就很好解决这个问题。可以实现启动项目自动匹配node版本。

[Vue.js](https://juejin.cn/tag/Vue.js "Vue.js")[Node.js](https://juejin.cn/tag/Node.js "Node.js")

* [Volta:解决Node.js 版本冲突的项目级管理神器](https://juejin.cn/post/7538265059878125608 "Volta:解决Node.js 版本冲突的项目级管理神器") 为什么需要Volta? 在前端开发中,Node.js 版本冲突是每个开发者都可能遇到的头疼问题,即多项目开发的版本痛点。

[前端](https://juejin.cn/tag/%E5%89%8D%E7%AB%AF "前端")

Image 17: Volta:解决Node.js 版本冲突的项目级管理神器
Image 17: Volta:解决Node.js 版本冲突的项目级管理神器

* [node 版本管理工具:Volta和nvm](https://juejin.cn/post/7438824467906838537 "node 版本管理工具:Volta和nvm") 官网:Volta - The Hassle-Free JavaScript Tool Manager volta fetch 将工具缓存到本地机器以供离线使用 volta install 设置工具的默

[前端](https://juejin.cn/tag/%E5%89%8D%E7%AB%AF "前端")

* [硬核指南:Volta —— 重新定义 JavaScript 工具链管理](https://juejin.cn/post/7587313610697228315 " 硬核指南:Volta —— 重新定义 JavaScript 工具链管理") 在前端基建领域,Node.js 版本管理经历了三代演变: 石器时代:手动下载安装包,版本切换靠重装。 铁器时代(NVM/N) :基于 Shell 脚本的路径修改,虽然解决了多版本共存,但在跨 Shel

[前端](https://juejin.cn/tag/%E5%89%8D%E7%AB%AF "前端")[命令行](https://juejin.cn/tag/%E5%91%BD%E4%BB%A4%E8%A1%8C "命令行")[敏捷开发](https://juejin.cn/tag/%E6%95%8F%E6%8D%B7%E5%BC%80%E5%8F%91 "敏捷开发")

* [Volta:解决Node.js 版本冲突的项目级管理神器](https://juejin.cn/post/7559644748690210862 "Volta:解决Node.js 版本冲突的项目级管理神器") Volta:解决Node.js 版本冲突的项目级管理神器 为什么需要Volta? 在前端开发中,Node.js 版本冲突是每个开发者都可能遇到的头疼问题,即多项目开发的版本痛点。例如: 项目A需要No

[前端](https://juejin.cn/tag/%E5%89%8D%E7%AB%AF "前端")[Node.js](https://juejin.cn/tag/Node.js "Node.js")

* [Volta比nvm智能的新一代node版本管理工具](https://juejin.cn/post/7528706324262420514 "Volta比nvm智能的新一代node版本管理工具") Volta是什么 Volta是一个现代化的 JavaScript 工具管理器,提供了比传统 nvm 更好的性能和用户体验。通过使用 Volta管理项目级别的 Node.js 版本,可以确保每个项目都有

[前端](https://juejin.cn/tag/%E5%89%8D%E7%AB%AF "前端")

Image 18: Volta比nvm智能的新一代node版本管理工具
Image 18: Volta比nvm智能的新一代node版本管理工具

* [管理工具:nvm、volta 和 asdf](https://juejin.cn/post/7400253623789928483 "管理工具:nvm、volta 和 asdf") nvm、volta 和 asdf 在前端开发中,管理 Node.js 版本是一个常见需求。nvm、Volta 和 asdf 是三个流行的工具,它们都能帮助你方便地切换和管理不同的 Node.js 版本

[前端](https://juejin.cn/tag/%E5%89%8D%E7%AB%AF "前端")

* [nvm for windows之死:别再被这个“过时工具”耽误开发](https://juejin.cn/post/7625563529491611690 "nvm for windows之死:别再被这个“过时工具”耽误开发") 如果你是Windows平台的Node.js开发者,至今还在依赖nvm for windows管理Node版本,那这篇文章请你务必读完——不是危言耸听,而是这个陪伴了无数开发者近十年的工具,早已进入“死

[前端](https://juejin.cn/tag/%E5%89%8D%E7%AB%AF "前端")

Image 19: nvm for windows之死:别再被这个“过时工具”耽误开发
Image 19: nvm for windows之死:别再被这个“过时工具”耽误开发

* [使用nvm切换node版本](https://juejin.cn/post/7294924154720698395 "使用nvm切换node版本") 使用场景 确认本机是否安装了nodejs 下载nvm之前需要先把本机的node卸载掉: 找到文件夹位置,清空文件夹。 同时,找到本机的【控制面板】-【程序-卸载程序】将node程序卸载。 安装nvm

[前端](https://juejin.cn/tag/%E5%89%8D%E7%AB%AF "前端")

收藏成功!

已添加到「」, 点击更改

  • 微信Image 20微信扫码分享
  • 新浪微博
  • QQ
Image 21: image
Image 21: image

AI代码助手上线啦

选中代码,体验AI替你一键快速解读代码

立即体验

APP内打开

温馨提示

当前操作失败,如有疑问,可点击申诉

前往申诉 我知道了

Image 24
Image 24

Image 25选择你感兴趣的技术方向

后端

前端

Android

iOS

人工智能

开发工具

代码人生

阅读

跳过

上一步

至少选择1个分类

沉浸阅读

确定屏蔽该用户

屏蔽后,对方将不能关注你、与你产生任何互动,无法查看你的主页

取消 确定