macOs安装nvm

首先确定本机上没有安装nvm

如果之前安装过先卸载

1. 删除 nvm 目录

首先,删除 nvm 所安装的文件目录。默认情况下,nvm 会安装到 ~/.nvm 目录。

运行以下命令删除 nvm 目录:

javascript 复制代码
rm -rf ~/.nvm

2. 移除 .zshrc 或 .bash_profile 中的 nvm 配置

接下来,删除配置文件中的 nvm 相关配置。根据你使用的 shell,打开相应的配置文件:

如果你使用的是 zsh(macOS 10.15 或更高版本默认使用),打开 ~/.zshrc:

javascript 复制代码
vim ~/.zshrc

如果你使用的是 bash,打开 ~/.bash_profile 或 ~/.bashrc:

javascript 复制代码
vim ~/.bash_profile

查找以下与 nvm 相关的行,并将它们删除:

javascript 复制代码
export NVM_DIR="$HOME/.nvm"
[ -s "/usr/local/opt/nvm/nvm.sh" ] && . "/usr/local/opt/nvm/nvm.sh"  # 这将加载 nvm
[ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && . "/usr/local/opt/nvm/etc/bash_completion.d/nvm"  # 这将加载 nvm bash 补全

删除这些行后,保存文件并退出

3. 删除 Homebrew 中的 nvm 安装(如果使用 Homebrew 安装)

如果你通过 Homebrew 安装了 nvm,还需要将其从 Homebrew 中卸载:

javascript 复制代码
brew uninstall nvm

4. 清理缓存(可选)

nvm 可能会缓存一些文件,如果你想彻底清理这些缓存,可以运行以下命令:

javascript 复制代码
brew cleanup

5. 重启终端或重新加载配置文件

删除配置后,运行以下命令重新加载 shell 配置文件:

  • 对于 zsh:
javascript 复制代码
source ~/.zshrc
  • 对于 bash:
javascript 复制代码
source ~/.bash_profile

或者,你可以关闭终端窗口并重新打开它。

6. 验证是否已完全卸载

运行以下命令确认 nvm 是否已经完全卸载:

javascript 复制代码
nvm

如果显示 command not found: nvm,说明已经成功卸载。

彻底卸载后就可以进行安装了

如果没有安装过直接进行安装

安装

1. 安装 nvm(通过 Homebrew)

如果你希望通过 Homebrew 安装 nvm,可以按照以下步骤进行:

打开终端,运行以下命令安装 nvm:

javascript 复制代码
brew install nvm
  1. 安装完成后,你需要创建一个目录来存储 nvm 配置。你可以使用以下命令创建 nvm 目录:
javascript 复制代码
mkdir ~/.nvm

2. 配置 Shell 文件

为了让 nvm 在每次打开终端时都能正确加载,你需要配置 shell 配置文件。

  • 对于 zsh(默认 shell 在 macOS 10.15 及更高版本上):
javascript 复制代码
touch ~/.zshrc
 vim ~/.bash_profile 
  • 对于 bash(如果你使用的是旧版 macOS 或者手动切换到 bash):
javascript 复制代码
touch ~/.bash_profile
 vim ~/.bash_profile 
  • 在打开的文件中,添加以下内容:
javascript 复制代码
export NVM_DIR="$HOME/.nvm"
[ -s "/usr/local/opt/nvm/nvm.sh" ] && . "/usr/local/opt/nvm/nvm.sh"  # 这将加载 nvm
[ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && . "/usr/local/opt/nvm/etc/bash_completion.d/nvm"  # 这将加载 nvm bash 补全

保存并退出

3. 重新加载配置文件

运行以下命令重新加载你的配置文件:

  • 对于 zsh:
javascript 复制代码
source ~/.zshrc
  • 对于 bash:
javascript 复制代码
source ~/.bash_profile

如果不想使用 source 命令,可以直接关闭并重新打开终端窗口。

4. 安装 Node.js

安装 nvm 完成后,你可以开始使用它来安装和管理 Node.js 版本。

  • 例如,安装最新的 Node.js 版本:
javascript 复制代码
nvm install node
  • 或者,安装特定版本(例如 v16.14.0):
javascript 复制代码
nvm install 16.14.0
  • 切换到安装的版本:
javascript 复制代码
nvm use 16.14.0
  • 你可以查看安装的版本:
javascript 复制代码
nvm ls

5. 设置默认版本

如果你希望每次启动终端时自动使用某个版本,可以设置默认版本:

javascript 复制代码
nvm alias default 16.14.0

6. 验证安装

最后,运行以下命令验证 nvm 是否正确安装并可以使用:

javascript 复制代码
nvm --version

为什么在mac自带的终端安装了nvm后再macr安装的item终端打开nvm提示 command not found: nvm ???

这个问题通常是因为 nvm 只在某一个终端配置中生效,或者是因为 nvm 没有正确加载到你在 iTerm 中使用的 shell 配置文件中。默认情况下,nvm 会添加到你使用的 shell 配置文件(比如 ~/.zshrc 或 ~/.bash_profile)中,而不同的终端(比如 macOS 自带的终端和 iTerm)可能会使用不同的配置文件。

解决方法:

  1. 确认 shell 配置文件正确加载 nvm

    在 iTerm 中打开终端,编辑 shell 配置文件(例如 ~/.zshrc 或 ~/.bash_profile):

  • 如果你使用的是 zsh(macOS 10.15 及以上版本默认使用),编辑 ~/.zshrc:
javascript 复制代码
vim ~/.zshrc
  • 如果你使用的是 bash(macOS 10.14 或以下版本默认使用),编辑 ~/.bash_profile
javascript 复制代码
vim ~/.bash_profile

添加 nvm 配置

  1. 确保在该配置文件中包含了正确的 nvm 配置:
javascript 复制代码
export NVM_DIR="$HOME/.nvm"
[ -s "/usr/local/opt/nvm/nvm.sh" ] && . "/usr/local/opt/nvm/nvm.sh"  # 这将加载 nvm
[ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && . "/usr/local/opt/nvm/etc/bash_completion.d/nvm"  # 这将加载 nvm bash 补全
  1. 重新加载配置文件

添加完配置后,保存并退出 nano(按 Ctrl + X,然后按 Y 确认保存)。然后运行以下命令重新加载配置文件:

  • 对于 zsh:
javascript 复制代码
source ~/.zshrc
  • 对于 bash:
javascript 复制代码
source ~/.bash_profile
  1. 确保 iTerm 使用的配置文件正确

如果你在 iTerm 中仍然看到 command not found: nvm,你可以确认 iTerm 是否使用了正确的配置文件。你可以运行以下命令查看当前的 shell 类型:

javascript 复制代码
echo $SHELL
  • 如果显示的是 /bin/zsh,那么应该编辑 ~/.zshrc。
  • 如果显示的是 /bin/bash,那么应该编辑 ~/.bash_profile。
相关推荐
CodeCraft Studio1 分钟前
Excel处理控件Spire.XLS系列教程:C# 合并、或取消合并 Excel 单元格
前端·c#·excel
头顶秃成一缕光12 分钟前
若依——基于AI+若依框架的实战项目(实战篇(下))
java·前端·vue.js·elementui·aigc
冴羽yayujs16 分钟前
SvelteKit 最新中文文档教程(17)—— 仅服务端模块和快照
前端·javascript·vue.js·前端框架·react
木木黄木木28 分钟前
HTML5图片裁剪工具实现详解
前端·html·html5
念九_ysl30 分钟前
基数排序算法解析与TypeScript实现
前端·算法·typescript·排序算法
海石30 分钟前
vue2升级vue3踩坑——【依赖注入】可能成功了,但【依赖注入】成功了不太可能
前端·vue.js·响应式设计
uhakadotcom42 分钟前
Vite 与传统 Bundler(如 Webpack)在 Node.js 应用的性能对比
前端·javascript·面试
uhakadotcom1 小时前
Socket.IO 简明教程:实时通信的基础知识
前端·javascript·面试
机器视觉知识推荐、就业指导1 小时前
QML 批量创建模块 【Repeater】 组件详解
前端·c++·qml