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

相关推荐
mCell19 分钟前
从删库到跑路?这50个Linux命令能保你职业生涯
linux·windows·macos
杰克逊的日记21 分钟前
GPU运维常见问题处理
linux·运维·gpu
誰能久伴不乏1 小时前
Linux系统调用概述与实现:深入浅出的解析
linux·运维·服务器
程序员学习随笔2 小时前
Linux进程深度解析(2):fork/exec写时拷贝性能优化与exit资源回收机制(进程创建和销毁)
linux·运维·服务器
mmoyula2 小时前
【RK3568 PWM 子系统(SG90)驱动开发详解】
android·linux·驱动开发
-SGlow-2 小时前
MySQL相关概念和易错知识点(2)(表结构的操作、数据类型、约束)
linux·运维·服务器·数据库·mysql
代码改变世界ctw3 小时前
Linux内核设计与实现 - 第14章 块I/O层
linux·运维·服务器
van叶~5 小时前
Linux网络-------1.socket编程基础---(TCP-socket)
linux·网络·tcp/ip
风吹落叶花飘荡5 小时前
Ubuntu系统 系统盘和数据盘扩容具体操作
linux·运维·ubuntu
zoulingzhi_yjs5 小时前
haproxy配置详解
linux·云原生