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

相关推荐
努力的小帅7 分钟前
通过VSCode远程连接到CentOS7/Ubuntu18等老系统
ide·vscode·编辑器
SELSL20 分钟前
标准IO总结
linux·c语言·标准io·stdio·标准io与文件io的区别
大猫和小黄24 分钟前
Ubuntu环境下GitBlit安装部署与版本库迁移
linux·运维·git·ubuntu·gitblit
点亮一颗LED(从入门到放弃)35 分钟前
设备树驱动(6)
linux
加勒比之杰克37 分钟前
【操作系统原理】软硬链接与动静态库
linux·os·动静态库·软硬链接
KingRumn42 分钟前
Linux进程间通信之消息队列(POSIX)实现篇
linux·服务器
loosed43 分钟前
ubuntu navicat17连接本机msyql8 /run/mysqld/mysqld.sock问题
linux·mysql·ubuntu·adb
小猪佩奇TONY1 小时前
Linux 内核学习(13) --- linux 内核并发与竞态
linux·服务器·学习
倔强的石头1061 小时前
Linux 进程深度解析(四):环境变量 —— 进程的“环境 DNA”
linux·运维·服务器
牛奶咖啡131 小时前
在Linux中搭建本地yum/dnf仓库
linux·搭建yum/dnf本地仓库·添加rpm文件到yum仓库·添加rpm文件到dnf仓库·生成仓库索引·测试本地搭建的yum仓库·搭建http服务并开启目录浏览