nvm踩坑记录--nvm 切换node版本 node -v却不是切换的版本

现象:

终端输入:nvm use 16.15.0

终端输出:Now using node v16.15.0 (npm v8.5.5)

终端输入: node -v

终端输出:23.9.0

显然不对呀,生效了又没有生效。

我怀疑mac自己有自带的node版本

输入 which node 后输出 /opt/homebrew/bin/node 也不是自带的node

那我就问了下deepseek

为什么 nvm 切换版本后仍然显示 Homebrew 的 Node.js?

下面是deepseek的解答

主要解决就是环境变量改了下

export NVM_DIR="$HOME/.nvm"

-s "$NVM_DIR/nvm.sh" \] \&\& \\. "$NVM_DIR/nvm.sh" export PATH="$NVM_DIR/versions/node/$(nvm current)/bin:$PATH" 下面是解释: * 这是因为 Homebrew 的路径在 `PATH` 环境变量中优先级高于 `nvm` 管理的路径。 * 你可以通过以下命令查看 `PATH` 的内容: sh:echo $PATH 如果 `/opt/homebrew/bin` 或 `/usr/local/bin` 出现在 `~/.nvm/versions/node` 前面,`node` 命令会优先指向 Homebrew 安装的版本。 *** ** * ** *** #### 4. **如何解决这个问题?** ##### **方法 1:调整 `PATH` 环境变量** * 确保 `nvm` 管理的 Node.js 路径优先级高于 Homebrew 的路径。可以在你的 shell 配置文件(如 `~/.zshrc` 或 `~/.bashrc`)中添加以下内容: sh : ``` export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" export PATH="$NVM_DIR/versions/node/$(nvm current)/bin:$PATH" ``` * 然后重新加载配置文件: sh ``` source ~/.zshrc # 或 source ~/.bashrc ``` ##### **方法 2:卸载 Homebrew 安装的 Node.js** * 如果你不需要 Homebrew 安装的 Node.js,可以直接卸载它: sh ``` brew uninstall node ``` * 卸载后,`which node` 应该会指向 `nvm` 管理的 Node.js。 ##### **方法 3:屏蔽 Homebrew 的 Node.js** * 如果你不想卸载 Homebrew 安装的 Node.js,可以通过以下命令屏蔽它: sh 复制 ``` brew unlink node ``` * 这样 Homebrew 的 Node.js 将不会被加载,`nvm` 管理的版本会生效。 ##### **方法 4:检查 `nvm` 的默认版本** * 确保你已经为 `nvm` 设置了默认的 Node.js 版本: sh 复制 ``` nvm alias default ``` 例如: sh 复制 ``` nvm alias default 18.0.0 ``` *** ** * ** *** #### 5. **验证是否解决** * 运行以下命令检查当前使用的 Node.js 版本和路径: sh 复制 ``` node -v which node ``` * 如果输出显示的是 `nvm` 管理的版本(例如 `~/.nvm/versions/node/v18.0.0/bin/node`),说明问题已解决。

相关推荐
chlk1231 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑1 天前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件1 天前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
深紫色的三北六号2 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash2 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
哈基咪怎么可能是AI2 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github
十日十行3 天前
Linux和window共享文件夹
linux
木心月转码ing3 天前
WSL+Cpp开发环境配置
linux
崔小汤呀4 天前
最全的docker安装笔记,包含CentOS和Ubuntu
linux·后端
何中应4 天前
vi编辑器使用
linux·后端·操作系统