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`),说明问题已解决。

相关推荐
C_心欲无痕5 小时前
ts - tsconfig.json配置讲解
linux·前端·ubuntu·typescript·json
冰西瓜6006 小时前
国科大2025操作系统高级教程期末回忆版
linux
HIT_Weston7 小时前
93、【Ubuntu】【Hugo】搭建私人博客:面包屑(一)
linux·运维·ubuntu
cuijiecheng20187 小时前
Linux下Beyond Compare过期
linux·运维·服务器
HIT_Weston7 小时前
92、【Ubuntu】【Hugo】搭建私人博客:侧边导航栏(六)
linux·运维·ubuntu
CodeAllen嵌入式7 小时前
Windows 11 本地安装 WSL 支持 Ubuntu 24.04 完整指南
linux·运维·ubuntu
码农小韩9 小时前
基于Linux的C++学习——指针
linux·开发语言·c++·学习·算法
wdfk_prog9 小时前
[Linux]学习笔记系列 -- [fs]seq_file
linux·笔记·学习
Jay Chou why did10 小时前
wsl安装完无法进入wsl
linux
石头53011 小时前
Rocky Linux 9.6 docker k8s v1.23.17 kubeadm 高可用部署文档
linux