当前位置: 首页 > news >正文

NVM (Node Version Manager) 使用教程

前言

在日常的 Node.js 开发中,我们可能会遇到这样的问题:项目A使用的Node.js版本是14.x,而项目B需要使用16.x版本。如果每次切换项目时都需要重新安装不同版本的Node.js,既耗时又麻烦。为了解决这个问题,我们可以使用 NVM (Node Version Manager),它允许我们在同一台机器上轻松管理和切换多个 Node.js 版本。

本文将介绍 NVM 的基本使用方法,包括如何安装、切换和管理 Node.js 版本。


一、什么是 NVM?

NVM,全称 Node Version Manager,是一个用于管理 Node.js 版本的命令行工具。通过 NVM,你可以在同一台设备上安装多个 Node.js 版本,并根据项目的需求快速切换到不同的版本。

NVM 主要功能:

  • 安装多个不同版本的 Node.js
  • 自由切换不同版本的 Node.js
  • 为不同的项目设置不同的 Node.js 版本
  • 全局管理 Node.js 的 npm 包

二、NVM 的安装

1. 安装 NVM (Linux/MacOS)

在 Linux 和 MacOS 上,安装 NVM 非常简单,只需要执行以下命令:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash

执行完命令后,关闭终端并重新打开,或者运行:

source ~/.bashrc

安装完成后,可以使用以下命令验证 NVM 是否成功安装:

nvm --version

2. 安装 NVM (Windows)

在 Windows 上,你可以使用 NVM for Windows,它和 Linux/Mac 上的 NVM 功能类似。下载并安装 NVM for Windows,可以从 nvm-windows 的 GitHub Releases 页面获取最新的安装包。

安装完成后,打开新的命令行窗口,输入以下命令来验证 NVM 是否成功安装:

nvm version

三、NVM 基本使用

1. 查看可用的 Node.js 版本

使用以下命令来查看所有可用的 Node.js 版本:

nvm ls-remote

2. 安装指定的 Node.js 版本

假设我们想安装 Node.js 14.x 版本,可以使用以下命令:

nvm install 14

安装完成后,NVM 会自动将其设为当前使用的版本。如果想安装其他版本,只需替换版本号即可。

3. 切换 Node.js 版本

使用 NVM 切换到另一个已安装的 Node.js 版本:

nvm use 16

此时,Node.js 的版本将被切换为 16.x。

4. 查看已安装的 Node.js 版本

查看本地已安装的所有 Node.js 版本:

nvm ls

5. 设置默认 Node.js 版本

如果希望每次打开终端时都使用某个特定的版本,可以设置默认版本:

nvm alias default 14

四、NPM 的版本管理

当切换 Node.js 版本时,NVM 会自动切换对应版本的 NPM。如果你想升级某个版本的 NPM,可以手动执行以下命令:

npm install -g npm

五、常见问题

1. NVM 命令未找到

安装 NVM 后,如果终端提示 nvm: command not found,可以尝试以下解决方法:

  • 确保安装脚本被正确执行,并将 NVM 的路径加入到 .bashrc.zshrc 中。
  • 重新启动终端,或手动执行 source ~/.bashrc(或 source ~/.zshrc)命令。

2. 权限问题

有时候,在安装 Node.js 时可能会遇到权限不足的问题。此时可以尝试使用 nvm 命令安装最新版本并重新配置环境,避免手动下载和安装 Node.js。


六、总结

通过 NVM,开发者可以轻松地在多个 Node.js 版本之间切换,极大提高了开发效率,尤其是在多个项目需要不同 Node.js 版本时更为方便。NVM 不仅解决了版本管理的难题,还提供了更加灵活的 Node.js 开发体验。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • AB 1756-L62 与 AB 5069 通过串口通信
  • 从C语言过渡到C++
  • Kubernetes精讲之网络通信与调度
  • jmeter元件+取样器(十)
  • 心觉:收钱就像喝水一样简单,是如何做到的?
  • 【MySQL】Ubuntu22.04中MySQL-V8安装和修改root密码
  • 基于sklearn的机器学习 — KNN
  • Redis单机安装
  • OAExploit一款基于OA产品的一键扫描工具
  • 【iOS】UIViewController的生命周期
  • 视频监控管理平台LntonAIServer视频智能分析噪声检测应用场景
  • 搭建 WordPress 及常见问题与解决办法
  • 【Hadoop|HDFS篇】HDFS的读写流程
  • 【Google Chrome Windows 64 version及 WebDriver 版本】
  • 【Kubernetes】K8s 的鉴权管理(二):基于属性 / 节点 / Webhook 的访问控制
  • extjs4学习之配置
  • Laravel核心解读--Facades
  • MQ框架的比较
  • Python - 闭包Closure
  • 和 || 运算
  • 检测对象或数组
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 每天一个设计模式之命令模式
  • 前端代码风格自动化系列(二)之Commitlint
  • 深度学习中的信息论知识详解
  • 王永庆:技术创新改变教育未来
  • 正则学习笔记
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • ​学习一下,什么是预包装食品?​
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • (06)金属布线——为半导体注入生命的连接
  • (2024,Vision-LSTM,ViL,xLSTM,ViT,ViM,双向扫描)xLSTM 作为通用视觉骨干
  • (2024最新)CentOS 7上在线安装MySQL 5.7|喂饭级教程
  • (二)丶RabbitMQ的六大核心
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (三)SvelteKit教程:layout 文件
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (五)IO流之ByteArrayInput/OutputStream
  • (一一四)第九章编程练习
  • *上位机的定义
  • ./configure、make、make install 命令
  • .NET 某和OA办公系统全局绕过漏洞分析
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • .net6使用Sejil可视化日志
  • .net图片验证码生成、点击刷新及验证输入是否正确
  • .NET微信公众号开发-2.0创建自定义菜单
  • @cacheable 是否缓存成功_Spring Cache缓存注解
  • @data注解_一枚 架构师 也不会用的Lombok注解,相见恨晚
  • @RequestParam,@RequestBody和@PathVariable 区别
  • @Transactional 参数详解
  • @Transient注解
  • [Algorithm][综合训练][kotori和n皇后][取金币][矩阵转置]详细讲解
  • [C#]无法获取源 https://api.nuge t.org/v3-index存储签名信息解决方法