目标
清理当前通过系统安装的 Node.js 和全局 npm 包,改用 nvm 管理多个 Node.js 版本,并使用官方推荐方式安装独立的 pnpm,实现一次安装,所有 Node 版本通用。
为什么需要独立安装 pnpm ?
使用 node 的 npm 安装全局的 pnpm ,确实可以轻松的使用 pnpm,但如果你切换到另一个未安装 pnpm 的 Node.js 版本,pnpm 命令会无法使用。此时你需要为每一个可能应用于开发环境的 Node.js 版本都安装一次全局 pnpm ,这将导致预期之外的存储空间浪费
前置准备
- 备份重要数据:确保没有正在运行的重要 Node.js 服务。
- 记录全局包列表(可选但建议):如果你记得之前通过
npm -g安装过一些重要的全局工具(如vue-cli,create-react-app等),可以先记下来,方便后续重新安装。npm list -g --depth=0
步骤一:彻底清理现有的 Node.js 和 npm
这是最关键的一步,目的是避免新老版本冲突。
对于 macOS / Linux 系统:
- 打开终端(Terminal)。
- 卸载通过官方安装包安装的 Node.js(如果你是通过其他方式如
brew安装,请使用相应的卸载命令,如brew uninstall node)。 - 手动删除 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 系统:
- 打开
控制面板->程序和功能。 - 找到
Node.js,右键点击并选择“卸载”。(或使用其他方式卸载Node.js,例如 Geek Uninstaller) - 删除相关目录(请在文件资源管理器中操作):
C:\Program Files\nodejs\%AppData%\npm\(在地址栏输入此路径即可进入)%AppData%\npm-cache\(可能存在于 Local 或 Roaming 目录内)%LocalAppData%\pnpm\(如果存在)%LocalAppData%\pnpm-cache\(如果存在)%LocalAppData%\pnpm-state\(如果存在)
- 检查系统环境变量
PATH,确保其中已经没有上述目录的引用。
步骤二:安装和配置 NVM
对于 macOS / Linux 系统:
-
打开终端,运行官方安装脚本:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash注意:请始终从 nvm 官方 GitHub 查看最新版本号,替换上面的
v0.39.7。 -
安装完成后,完全关闭并重新打开终端,或者运行以下命令使配置生效:
source ~/.bashrc # 或者 ~/.zshrc, ~/.profile,取决于你使用的 shell -
验证 nvm 是否安装成功:
nvm --version # 如果成功,会输出 nvm 的版本号
对于 Windows 系统:
- 前往
nvm-windows官方发布页面。 - 下载最新的
nvm-setup.exe安装程序。 - 运行安装程序,按照提示完成安装。它会自动帮你配置环境变量。
- 打开一个新的 命令提示符(CMD) 或 PowerShell。
- 验证 nvm 是否安装成功:
nvm --version
步骤三:使用 NVM 安装和管理 Node.js
-
安装最新的长期支持(LTS)版本,这是最稳定的选择:
nvm install --lts -
安装完成后,使用这个版本:
nvm use --lts # 该步骤发送错误可手动指定版本 # 或使用管理员终端执行 -
(可选)你也可以安装其他版本,例如最新的当前版本:
nvm install node # 安装最新版 nvm install 18 # 安装 v18 系列的最新版 -
验证 Node.js 和 npm 是否由 nvm 正确管理:
node --version npm --version -
配置下载镜像(可选):在
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 系统:
-
在终端中运行以下命令:
curl -fsSL https://get.pnpm.io/install.sh | sh - -
完全关闭并重新打开终端,或者运行
source ~/.bashrc(或你的 shell 配置文件)。
对于 Windows 系统(PowerShell):
-
以管理员身份打开 PowerShell。
-
运行以下命令:
iwr https://get.pnpm.io/install.ps1 -useb | iex -
验证 pnpm 是否安装成功且独立:
pnpm --version which pnpm # macOS/Linux: 路径可能像 ‘/home/username/.local/share/pnpm/pnpm’ where pnpm # Windows: 路径可能像 ‘C:\Users\Username\Local\pnpm\pnpm.exe’
步骤五:验证
让我们测试一切是否按预期工作。
-
验证独立性:切换到一个没有用
npm -g安装过 pnpm 的 Node 版本。nvm install 16 # 例如,安装一个老版本 nvm use 16 pnpm --version # 这个命令应该依然有效!证明 pnpm 是独立的 npm list -g pnpm # 这个命令应该报错或显示为空,证明这个 Node 版本下没有全局安装 pnpm -
切换回常用版本:
nvm use --lts -
开始使用:现在你可以在任何目录、任何 Node 版本下使用
pnpm install来管理你的项目依赖了。 -
设置镜像源:设置
pnpm使用国内镜像源# 查询当前使用的镜像源 pnpm get registry # 设置为淘宝镜像源 pnpm config set registry https://registry.npmmirror.com/ # 还原为官方镜像源 pnpm config set registry https://registry.npmjs.org/ -
安装全局依赖:此时你可以使用
pnpm来安装全局依赖,在使用 nvm 切换 node.js 版本的时候便不受影响
总结
至此,你已成功:
- 清除了旧的 Node.js 环境。
- 安装了
nvm作为 Node.js 版本管理器。 - 通过
nvm安装了 Node.js。 - 独立安装了
pnpm,它不再依赖于特定的 Node.js 版本。
这种架构是最清晰和便于管理的,如果你希望使用 yarn 、 cnpm 或其他包管理器,也可以使用类似的方式进行安装