使用nvm管理Node.js多版本

使用nvm管理Node.js多版本

文章目录

      • 使用nvm管理Node.js多版本
        • [1. 安装nvm](#1. 安装nvm)
        • [2. 卸载nvm](#2. 卸载nvm)
        • [3. 配置环境变量](#3. 配置环境变量)
        • [4. 使用nvm管理Node.js版本](#4. 使用nvm管理Node.js版本)
        • [5. 更换npm为淘宝镜像](#5. 更换npm为淘宝镜像)

在前端开发中,不同项目可能需要使用不同的Node.js版本,手动管理Node.js版本会非常麻烦。而nvm(Node Version Manager)可以方便地帮助我们在同一台机器上安装、切换多个Node.js版本。

1. 安装nvm

在Linux和macOS上,我们可以通过以下命令安装nvm:

bash 复制代码
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash

执行上述命令后,nvm的安装脚本会自动将nvm配置到环境变量中。安装成功后,可以通过以下命令来加载nvm:

bash 复制代码
source ~/.bashrc # 或 ~/.zshrc, 取决于你使用的shell

之后,可以通过以下命令验证nvm是否安装成功:

bash 复制代码
nvm --version

如果你使用的是Windows系统,可以通过nvm-windows来安装nvm。下载并运行安装程序后即可使用。

2. 卸载nvm
  • 删除~/.nvm目录:

    bash 复制代码
    rm -rf ~/.nvm
  • 移除~/.bashrc~/.zshrc中与nvm相关的配置:

    打开文件,找到包含nvm的行,手动删除它们,然后保存文件。

  • 重新加载配置文件:

    bash 复制代码
    source ~/.bashrc

至此,nvm就已经从你的系统中卸载干净了。

3. 配置环境变量

安装nvm之后,需要将其添加到环境变量中,确保可以在终端中全局使用nvm。一般来说,nvm安装脚本会自动完成这一步。但如果安装后无法使用nvm,可以手动配置。

~/.bashrc~/.zshrc文件中添加以下内容:

bash 复制代码
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

然后重新加载配置文件:

bash 复制代码
source ~/.bashrc

这将确保nvm在每次启动终端时自动加载。

4. 使用nvm管理Node.js版本

nvm可以轻松安装、卸载不同版本的Node.js。以下是一些常用命令:

  • 查看可用的Node.js版本:

    bash 复制代码
    nvm ls-remote
  • 安装指定版本的Node.js:

    bash 复制代码
    nvm install 16.13.0
  • 切换Node.js版本:

    bash 复制代码
    nvm use 16.13.0
  • 查看本地安装的Node.js版本:

    bash 复制代码
    nvm ls
  • 设置默认Node.js版本:

    bash 复制代码
    nvm alias default 16.13.0
5. 更换npm为淘宝镜像

国内访问npm的官方镜像速度较慢,因此很多开发者会选择使用国内的npm镜像。使用以下命令可以更换npm为镜像:

bash 复制代码
# 国内开发者切换到淘宝镜像
npm config set registry https://registry.npmmirror.com

# npm中国(CNPM)由阿里巴巴维护
npm config set registry https://r.cnpmjs.org

# 腾讯云npm镜像:由腾讯云提供
# 镜像地址: https://mirrors.cloud.tencent.com/npm/
# 华为云npm镜像
# 镜像地址: https://mirrors.huaweicloud.com/repository/npm/

# 国外开发者使用官方镜像
npm config set registry https://registry.npmjs.org

设置后可以通过以下命令查看当前npm的镜像地址:

bash 复制代码
npm config get registry
相关推荐
雪碧聊技术7 小时前
前端项目代码发生改变,如何重新部署到linux服务器?
前端·vue3·centos7·代码更新,重新部署
liulilittle8 小时前
C++ 浮点数封装。
linux·服务器·开发语言·前端·网络·数据库·c++
wordbaby8 小时前
Expo 进阶指南:赋予 TanStack Query “原生感知力” —— 深度解析 AppState 与 NetInfo
前端·react native
Moment8 小时前
从美团全栈化看 AI 冲击:前端转全栈,是自救还是必然 🤔🤔🤔
前端·后端·面试
天问一8 小时前
使用 Vue Router 进行路由定制和调用的示例
前端·javascript·vue.js
韩立学长10 小时前
【开题答辩实录分享】以《基于Vue的非遗文化知识分享平台的设计与实现》为例进行选题答辩实录分享
前端·javascript·vue.js
优弧10 小时前
离开舒适区100天,我后悔了吗?
前端·后端·面试
胡gh10 小时前
css的臂膀,前端动效的利器,还是布局的“隐形陷阱”?
前端·css·html
灵感菇_10 小时前
Flutter Riverpod 完整教程:从入门到实战
前端·flutter·ui·状态管理
用户214118326360210 小时前
紧急修复!Dify CVE-2025-55182 高危漏洞,手把手教你升级避坑
前端