Volta 是一个用 Rust 写的 JavaScript 工具链管理器。它和 nvm 最大的区别是: nvm 要你手动切版本,Volta 是进目录就自动切—— 把「在我机器上能跑」这件事,变成代码的一部分。

原文发布在掘金 · 含 Windows 迁移步骤与 shim 冲突处理

下面是核心用法与关键配置的整理,完整的迁移步骤与命令表请到掘金阅读。

在掘金阅读全文

一句话要点

  • volta pin node@16 会把版本写进 package.json,同事克隆后进目录自动生效。
  • 用环境变量 VOLTA_HOME 就能把安装位置挪出 C 盘。
  • pnpm 报冲突时,正确解法是设 VOLTA_FEATURE_PNPM=1 然后完全重启终端。

一、核心价值:项目级自动切换

在项目根目录执行一次固定版本,Volta 会把版本记进 package.json:

{
  "volta": {
    "node": "16.20.2",
    "npm": "8.19.4"
  }
}

之后团队成员克隆项目并进入该目录时,Volta 会自动读取并切换到对应的 Node 版本, 无需任何手动操作。

二、Windows 安装

# 管理员身份打开 PowerShell
winget install Volta.Volta

# 重新打开一个终端再验证
volta --version

三、把安装目录挪到 C 盘之外

默认会装在 C:\Users\<用户名>\AppData\Local\Volta,比较占 C 盘空间。 通过配置 VOLTA_HOME 改存储路径:

  1. 在目标盘新建目录,比如 D:\Volta。
  2. 「编辑系统环境变量」→「环境变量」→「系统变量」里新建 VOLTA_HOME,值填该目录。
  3. 再执行安装;因为变量已存在,Volta 会把数据写进新位置。
  4. 已经装在 C 盘的,可以把两个目录复制过去,再把系统变量 Path 里指向 C 盘的旧路径替换为 %VOLTA_HOME%。
  5. 验证:执行 volta install node,看 D:\Volta\tools\image\node 下是否出现版本目录。

四、常用命令

volta install node@18    # 安装并设为默认
volta pin node@16        # 在当前项目固定版本,写入 package.json
volta list all           # 查看已安装的工具与版本
volta uninstall node@16  # 卸载指定版本

五、pnpm 的 shim 冲突

Volta 安装时会预先放置一些 shim 文件(node、npm、pnpm 等), 作用是拦截命令调用、再按项目配置路由到正确版本。 如果之前手动装过 pnpm,执行 volta install pnpm 就会和已有 shim 冲突。

正确解法是开启 Volta 的原生 pnpm 支持,而不是去删文件:

# 新建用户环境变量
VOLTA_FEATURE_PNPM = 1

# 完全重启终端后再执行
volta install pnpm
配置 VOLTA_HOME 是在 Windows 上用 Volta 的关键一步: 既避免占用 C 盘,又能安心享受自动版本管理带来的便利。
© 2026 HOLZWEGE 返回随笔列表