macOS 使用 NVM 升级 Node.js 完整操作

完整规范的升级 Node.js 操作


📝 macOS 使用 NVM 升级 Node.js 完整操作


一、问题描述

在 macOS 系统中,使用 nvm install node 升级 Node.js 时遇到错误:

arduino 复制代码
Version 'node' not found - try `nvm ls-remote` to browse available versions.

同时执行 nvm ls-remote 仅能列出 iojs 相关版本,缺失正常的 Node.js 版本(如 v18、v20系列)。


二、原因分析

综合排查后,发现可能原因有以下几种:

可能原因 说明
1. nvm 未正确加载 当前终端未加载 nvm 环境变量或初始化脚本。
2. 网络连接问题 无法访问 Node 官方源(nodejs.org/dist),导致版本列...
3. 镜像源配置问题 nvm 默认从 Node 官网拉取数据,国内访问有时被墙或连接异常。

三、解决方案

1. 确保 nvm 正确加载

在终端执行以下命令,手动加载 nvm 环境变量:

bash 复制代码
export NVM_DIR="$HOME/.nvm"
source "$NVM_DIR/nvm.sh"

验证 nvm 是否加载成功:

css 复制代码
nvm --version

若能正确输出版本号(如 0.39.7),说明 nvm 已正常加载。


2. 设置国内镜像源(推荐淘宝 npmmirror)

由于访问 Node 官方源不稳定,推荐使用淘宝 Node 镜像。

执行以下命令,切换镜像源:

arduino 复制代码
export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node

再次执行:

复制代码
nvm ls-remote

如果能正常列出 Node 版本列表(如 v18.17.1, v20.12.2 等),说明切换成功。


3. 安装最新 Node.js

安装最新稳定版 Node.js:

复制代码
nvm install node

设置为默认版本:

csharp 复制代码
nvm alias default node
nvm use node

查看安装完成后的版本:

复制代码
node -v
npm -v

4. (可选)永久配置到 Shell 配置文件

为了避免每次手动配置,推荐将镜像源和 nvm 初始化写入 ~/.zshrc~/.bashrc 文件中。

编辑配置文件:

bash 复制代码
nano ~/.zshrc

添加以下内容:

bash 复制代码
export NVM_DIR="$HOME/.nvm"
source "$NVM_DIR/nvm.sh"
export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node

保存并重新加载配置:

bash 复制代码
source ~/.zshrc

这样以后打开终端就能直接使用 nvm 和国内镜像了。


四、最终验证

执行以下命令确认安装成功:

bash 复制代码
node -v
npm -v
nvm ls

确保显示的是新安装的 Node.js 版本。


✅ 总结

本次问题的根因在于网络环境导致 nvm 无法访问 Node 官方源,只能看到 iojs 版本。通过切换到淘宝 Node 镜像源,并正确加载 nvm 环境,最终成功完成了 Node.js 升级。


相关推荐
_codemonster11 小时前
npm run dev 是在开发模式运行,怎么在生产环境运行
前端·npm·node.js
渔夫正在掘金16 小时前
Cordis 插件热插拔能力深度解析
后端·node.js
嘟嘟07171 天前
NestJS 入门:从 NestFactory 入口到 Module/Controller/Service 模块化结构一次讲清
typescript·node.js·nestjs
breeze jiang1 天前
NestJS MVC 实战:用 hello 项目 7 个文件讲清分层、装饰器、依赖注入与错误处理
node.js·mvc·js
m0_380743871 天前
从零调用 Claude 教程
开发语言·python·node.js
烬羽2 天前
从 nest new 到 Hello World:一个最小 NestJS 项目,讲透工厂 + 装饰器 + 模块化
设计模式·node.js·nestjs
渔夫正在掘金2 天前
Cordis 中文教程:渐进式构建插件化应用
前端·node.js·ai编程
大家的林语冰2 天前
✌️ 让 Rust 再次伟大,pnpm 12 抛弃 TypeScript,移植 Rust 原地起飞!
前端·javascript·node.js
抓不住时间的沙2 天前
butterfly主题美化,打造属于自己的个性博客
java·开发语言·前端·javascript·node.js·github
抓不住时间的沙2 天前
N1搭建Hexo个人博客,部署到Github
python·docker·node.js·debian·github·arm