操作文档:迁移至 NVM 并独立安装 PNPM

196 阅读5分钟

目标

清理当前通过系统安装的 Node.js 和全局 npm 包,改用 nvm 管理多个 Node.js 版本,并使用官方推荐方式安装独立的 pnpm,实现一次安装,所有 Node 版本通用。

为什么需要独立安装 pnpm

使用 node 的 npm 安装全局的 pnpm ,确实可以轻松的使用 pnpm,但如果你切换到另一个未安装 pnpm 的 Node.js 版本,pnpm 命令会无法使用。此时你需要为每一个可能应用于开发环境的 Node.js 版本都安装一次全局 pnpm ,这将导致预期之外的存储空间浪费

前置准备

  1. 备份重要数据:确保没有正在运行的重要 Node.js 服务。
  2. 记录全局包列表(可选但建议):如果你记得之前通过 npm -g 安装过一些重要的全局工具(如 vue-cli, create-react-app 等),可以先记下来,方便后续重新安装。
    npm list -g --depth=0
    

步骤一:彻底清理现有的 Node.js 和 npm

这是最关键的一步,目的是避免新老版本冲突。

对于 macOS / Linux 系统:

  1. 打开终端(Terminal)。
  2. 卸载通过官方安装包安装的 Node.js(如果你是通过其他方式如 brew 安装,请使用相应的卸载命令,如 brew uninstall node)。
  3. 手动删除 Node.js 相关的本地文件和缓存:
    # 删除全局 node_modules 目录
    sudo rm -rf /usr/local/lib/node_modules
    # 删除 node 可执行文件
    sudo rm /usr/local/bin/node
    # 删除 npm 可执行文件等相关命令
    sudo rm /usr/local/bin/npm
    sudo rm /usr/local/bin/npx
    # 删除你可能通过 npm 安装的其它全局命令,例如 pnpm
    # 你可以通过 `which pnpm` 查看它的安装路径,然后删除它
    sudo rm /usr/local/bin/pnpm
    sudo rm /usr/local/bin/pnpx
    
    # 删除用户目录下的缓存和配置(可选,但推荐)
    rm -rf ~/.npm
    rm -rf ~/.node-gyp
    # 如果你之前用 npm 安装过 pnpm,也删除它
    rm -rf ~/.pnpm-store
    

对于 Windows 系统:

  1. 打开 控制面板 -> 程序和功能
  2. 找到 Node.js,右键点击并选择“卸载”。(或使用其他方式卸载 Node.js ,例如 Geek Uninstaller
  3. 删除相关目录(请在文件资源管理器中操作):
    • C:\Program Files\nodejs\
    • %AppData%\npm\ (在地址栏输入此路径即可进入)
    • %AppData%\npm-cache\ (可能存在于 Local 或 Roaming 目录内)
    • %LocalAppData%\pnpm\ (如果存在)
    • %LocalAppData%\pnpm-cache\ (如果存在)
    • %LocalAppData%\pnpm-state\ (如果存在)
  4. 检查系统环境变量 PATH,确保其中已经没有上述目录的引用。

步骤二:安装和配置 NVM

对于 macOS / Linux 系统:

  1. 打开终端,运行官方安装脚本:

    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
    

    注意:请始终从 nvm 官方 GitHub 查看最新版本号,替换上面的 v0.39.7

  2. 安装完成后,完全关闭并重新打开终端,或者运行以下命令使配置生效:

    source ~/.bashrc   # 或者 ~/.zshrc, ~/.profile,取决于你使用的 shell
    
  3. 验证 nvm 是否安装成功:

    nvm --version
    # 如果成功,会输出 nvm 的版本号
    

对于 Windows 系统:

  1. 前往 nvm-windows 官方发布页面
  2. 下载最新的 nvm-setup.exe 安装程序。
  3. 运行安装程序,按照提示完成安装。它会自动帮你配置环境变量。
  4. 打开一个新的 命令提示符(CMD)PowerShell
  5. 验证 nvm 是否安装成功:
    nvm --version
    

步骤三:使用 NVM 安装和管理 Node.js

  1. 安装最新的长期支持(LTS)版本,这是最稳定的选择:

    nvm install --lts
    
  2. 安装完成后,使用这个版本:

    nvm use --lts
    # 该步骤发送错误可手动指定版本
    # 或使用管理员终端执行
    
  3. (可选)你也可以安装其他版本,例如最新的当前版本:

    nvm install node  # 安装最新版
    nvm install 18    # 安装 v18 系列的最新版
    
  4. 验证 Node.js 和 npm 是否由 nvm 正确管理:

    node --version
    npm --version
    
  5. 配置下载镜像(可选):在 nvm 的安装路径下,找到 settings.txt,在后面加上这两行,设置淘宝镜像源:

    npm_mirror: https://registry.npmmirror.com/npm/
    node_mirror: https://registry.npmmirror.com/node/
    

    阿里云镜像: npm_mirror: https://npmmirror.com/mirrors/npm/
    node_mirror: https://npmmirror.com/mirrors/node/

    腾讯云镜像: npm_mirror: http://mirrors.cloud.tencent.com/npm/
    node_mirror: http://mirrors.cloud.tencent.com/nodejs-release/

步骤四:独立安装 PNPM(所有 Node 版本共享)

现在,我们采用官方推荐的方式安装 pnpm,它将独立于任何 Node 版本。

对于 macOS / Linux 系统:

  1. 在终端中运行以下命令:

    curl -fsSL https://get.pnpm.io/install.sh | sh -
    
  2. 完全关闭并重新打开终端,或者运行 source ~/.bashrc(或你的 shell 配置文件)。

对于 Windows 系统(PowerShell):

  1. 以管理员身份打开 PowerShell。

  2. 运行以下命令:

    iwr https://get.pnpm.io/install.ps1 -useb | iex
    
  3. 验证 pnpm 是否安装成功且独立:

    pnpm --version
    which pnpm        # macOS/Linux: 路径可能像 ‘/home/username/.local/share/pnpm/pnpm’
    where pnpm        # Windows: 路径可能像 ‘C:\Users\Username\Local\pnpm\pnpm.exe’
    

步骤五:验证

让我们测试一切是否按预期工作。

  1. 验证独立性:切换到一个没有npm -g 安装过 pnpm 的 Node 版本。

    nvm install 16    # 例如,安装一个老版本
    nvm use 16
    pnpm --version    # 这个命令应该依然有效!证明 pnpm 是独立的
    npm list -g pnpm  # 这个命令应该报错或显示为空,证明这个 Node 版本下没有全局安装 pnpm
    
  2. 切换回常用版本

    nvm use --lts
    
  3. 开始使用:现在你可以在任何目录、任何 Node 版本下使用 pnpm install 来管理你的项目依赖了。

  4. 设置镜像源:设置 pnpm 使用国内镜像源

    # 查询当前使用的镜像源
    pnpm get registry
    
    # 设置为淘宝镜像源
    pnpm config set registry https://registry.npmmirror.com/
    
    # 还原为官方镜像源
    pnpm config set registry https://registry.npmjs.org/
    
  5. 安装全局依赖:此时你可以使用 pnpm 来安装全局依赖,在使用 nvm 切换 node.js 版本的时候便不受影响

总结

至此,你已成功:

  1. 清除了旧的 Node.js 环境。
  2. 安装了 nvm 作为 Node.js 版本管理器。
  3. 通过 nvm 安装了 Node.js。
  4. 独立安装了 pnpm,它不再依赖于特定的 Node.js 版本。

这种架构是最清晰和便于管理的,如果你希望使用 yarncnpm 或其他包管理器,也可以使用类似的方式进行安装