【前端知识】一款好用的node多版本管理工具nvm

好用的node多版本管理工具nvm

    • 概述
      • 一、NVM的主要功能
    • 二、安装NVM
      • 二、配置NVM
    • 三、常用命令
    • 四、具体应用场景

概述

NVM(Node Version Manager)是一个用于管理Node.js版本的命令行工具。它允许用户在同一台机器上安装和切换不同版本的Node.js,从而解决了因项目依赖不同Node.js版本而产生的兼容性问题。以下是对NVM的详细介绍:

一、NVM的主要功能

  1. 安装Node.js版本

    • NVM可以安装指定版本的Node.js,包括稳定版、测试版和旧版等。
    • 用户可以通过NVM轻松获取Node.js的最新版本或特定版本。
  2. 切换Node.js版本

    • NVM允许用户在不同版本的Node.js之间快速切换。
    • 这对于需要在不同项目中使用不同Node.js版本的开发人员来说非常有用。
  3. 卸载Node.js版本

    • 用户可以通过NVM卸载不再需要的Node.js版本,以释放磁盘空间。
  4. 列出已安装的Node.js版本

    • NVM可以列出当前已安装的所有Node.js版本,方便用户查看和管理。
  5. 设置默认Node.js版本

    • 用户可以通过NVM设置默认使用的Node.js版本,以便在每次打开新的终端会话时自动使用该版本。

二、安装NVM

  1. Windows系统

    • 前往NVM-Windows的GitHub页面下载最新版本的NVM安装程序(nvm-setup.exe)。
    • 运行安装程序,按照提示完成安装。注意选择存放NVM和Node.js的位置时,路径中不要包含中文和空格。
    • 安装完成后,打开命令提示符(CMD),输入nvm version,能查到版本号就说明安装成功。
  2. Linux或Mac系统

    • 使用curl或wget命令从NVM的GitHub仓库直接安装。例如:
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
    # 或者
    wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
    
    • 安装完成后,重新打开终端或重新加载bash配置文件(如source ~/.bashrc)。

二、配置NVM

  1. 配置镜像源(可选):

    • 为了加速Node.js和npm的下载,可以修改NVM安装路径下的settings.txt文件,配置镜像源。例如:
    node_mirror: https://npm.taobao.org/mirrors/node/
    npm_mirror: https://npm.taobao.org/mirrors/npm/
    

    或者

    node_mirror: https://npmmirror.com/mirrors/node/
    npm_mirror: https://npmmirror.com/mirrors/npm/
    
  2. 配置环境变量(Windows系统可能需要):

    • 在系统环境变量中添加NVM和Node.js的路径。通常,安装NVM时会自动配置好环境变量。

三、常用命令

  1. 查看NVM版本

    nvm --version
    
  2. 查看可安装的Node.js版本

    nvm list available
    
  3. 安装指定版本的Node.js

    nvm install <version>
    

    例如:nvm install 14.17.0

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

    nvm ls
    
  5. 使用指定版本的Node.js

    nvm use <version>
    

    例如:nvm use 14.17.0

  6. 设置默认Node.js版本

    nvm alias default <version>
    

    例如:nvm alias default 14.17.0

  7. 卸载指定版本的Node.js

    nvm uninstall <version>
    

    例如:nvm uninstall 14.17.0

四、具体应用场景

  1. 项目A需要Node.js 14.x版本

    • 使用nvm install 14.17.0安装Node.js 14.17.0版本。
    • 使用nvm use 14.17.0切换到该版本。
    • 在项目A的根目录下运行项目,确保使用的是正确的Node.js版本。
  2. 项目B需要Node.js 16.x版本

    • 使用nvm install 16.14.0安装Node.js 16.14.0版本。
    • 使用nvm use 16.14.0切换到该版本。
    • 在项目B的根目录下运行项目,确保使用的是正确的Node.js版本。
  3. 为项目设置.nvmrc文件

    • 在项目的根目录下创建一个.nvmrc文件,并写入所需的Node.js版本。
    • 在项目根目录下运行nvm use,NVM会自动读取.nvmrc文件并使用指定的Node.js版本。

通过上述步骤,您可以轻松地使用NVM来管理多个Node.js版本,确保不同项目之间的兼容性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/953315.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

primitive 的 Appearance编写着色器材质

import { nextTick, onMounted, ref } from vue import * as Cesium from cesium import gsap from gsaponMounted(() > { ... })// 1、创建矩形几何体&#xff0c;Cesium.RectangleGeometry&#xff1a;几何体&#xff0c;Rectangle&#xff1a;矩形 let rectGeometry new…

31_搭建Redis分片集群

Redis的主从复制模式和哨兵模式可以解决高可用、高并发读的问题。但是依然有两个问题没有解决:海量数据存储问题、高并发写的问题。由于数据量过大,单个master复制集难以承担,因此需要对多个复制集进行集群,形成水平扩展每个复制集只负责存储整个数据集的一部分,这就是Red…

快速上手 INFINI Console 的 TopN 指标功能

背景 在分布式搜索引擎系统&#xff08;如 Easysearch、Elasticsearch 和 OpenSearch&#xff09;中&#xff0c;性能监控至关重要。为了确保系统的高效运行和资源的合理分配&#xff0c;我们通常需要关注一段时间内关键资源的使用情况&#xff0c;特别是索引、节点和分片的内…

风水算命系统架构与功能分析

系统架构 服务端&#xff1a;Java&#xff08;最低JDK1.8&#xff0c;支持JDK11以及JDK17&#xff09;数据库&#xff1a;MySQL数据库&#xff08;标配5.7版本&#xff0c;支持MySQL8&#xff09;ORM框架&#xff1a;Mybatis&#xff08;集成通用tk-mapper&#xff0c;支持myb…

探索AGI:智能助手与自我赋能的新时代

目录 1 AGI1.1 DeepMind Levels&#xff08;2023年11月)1.2 OpenAI Levels&#xff08;2024年7月&#xff09;1.3 对比与总结1.4 AGI可能诞生哪里 2 基于AI的智能自动化助手2.1 通用型大模型2.2 专业的Agent和模型工具开发框架2.3 编程与代码生成助手2.4 视频和多模态生成2.5 商…

工具推荐:PDFgear——免费且强大的PDF编辑工具 v2.1.12

PDFgear——免费且强大的PDF编辑工具 v2.1.12 软件简介 PDFgear 是一款 完全免费的 PDF 软件&#xff0c;支持 阅读、编辑、转换、合并 以及 跨设备签署 PDF 文件&#xff0c;无需注册即可使用。它提供了丰富的 PDF 处理功能&#xff0c;极大提升了 PDF 文件管理的便捷性和效…

【机器学习】L1正则化与L2正则化

L1&#xff0c;L2正则化解决过拟合问题 目录 过拟合的原因 正则化的目标 L1&#xff0c;L2正则化 L1正则化 L2正则化 从概率的角度来看 L1 正则化与拉普拉斯分布 L2 正则化与高斯分布 过拟合的原因 过拟合发生时&#xff0c;模型学习到了训练数据中的噪声或细节&am…

【PyQt】如何在mainwindow中添加菜单栏

[toc]如何在mainwindow中添加菜单栏 如何在mainwindow中添加菜单栏 主要有两种方法&#xff1a; 1.直接创建mainwindow进行添加 2.使用ui文件加载添加 第二种方法更为常见&#xff0c;可以应用到实际 1.直接创建mainwindow进行添加 import sysfrom PyQt5.QtWidgets import …

1.组件的三大组成部分注意点(结构/样式/逻辑)scoped解决样式冲突/data是一个函数2.组件通信组件通信语法父传子子传父

学习目标 1.组件的三大组成部分注意点&#xff08;结构/样式/逻辑&#xff09; scoped解决样式冲突/data是一个函数 2.组件通信 组件通信语法 父传子 子传父 非父子通信&#xff08;扩展&#xff09; 3.综合案例&#xff1a;小黑记事本&#xff08;组件版&#xff09; …

Sqoop1.4.7安装

环境说明 准备三台服务器&#xff0c;分别为&#xff1a;bigdata141&#xff08;hadoop 主节点&#xff09;、bigdata142、bigdata143确保 hadoop 集群先启动好&#xff0c;hadoop 版本为 3.2.0如果只安装不使用的话&#xff0c;以上可以暂时不用管另准备一台服务器&#xff0…

Oracle重启后业务连接大量library cache lock

一、现象 数据库和前段应用重启后&#xff0c;出现大量library cache lock等待事件。 二、分析解决 本次异常原因是&#xff1a;原因定位3&#xff1a; 库缓存对象无效 Library cache object Invalidations 三、各类情况具体分析如下 原因定位1&#xff1a;由于文字导致的非…

Demo15:DS1302涓流充电时钟芯片

一、实验现象 通过DS1302 涓流充电时钟芯片&#xff0c;在数码管上显示电子时钟时分秒&#xff0c;格式为“XX-XX-XX” 二、核心知识点 - DS1302时序 三、项目结构 main.c /************************************************************************************** 实验名称…

HTB:Bastion[WriteUP]

目录 连接至HTB服务器并启动靶机 信息收集 使用rustscan对靶机TCP端口进行开放扫描 将靶机TCP开放端口号提取并保存 使用nmap对靶机TCP开放端口进行脚本、服务扫描 使用nmap对靶机TCP开放端口进行漏洞、系统扫描 使用nmap对靶机常用UDP端口进行开放扫描 使用enum4linux…

易语言文字识别OCR

一.引言 文字识别&#xff0c;也称为光学字符识别&#xff08;Optical Character Recognition, OCR&#xff09;&#xff0c;是一种将不同形式的文档&#xff08;如扫描的纸质文档、PDF文件或数字相机拍摄的图片&#xff09;中的文字转换成可编辑和可搜索的数据的技术。随着技…

Harry技术添加存储(minio、aliyun oss)、短信sms(aliyun、模拟)、邮件发送等功能

Harry技术添加存储&#xff08;minio、aliyun oss&#xff09;、短信sms&#xff08;aliyun、模拟&#xff09;、邮件发送等功能 基于SpringBoot3Vue3前后端分离的Java快速开发框架 项目简介&#xff1a;基于 JDK 17、Spring Boot 3、Spring Security 6、JWT、Redis、Mybatis-P…

重邮+数字信号处理实验七:用 MATLAB 设计 IIR 数字滤波器

一、实验目的 1 、加深对窗函数法设计 FIR 数字滤波器的基本原理的理解。 2 、学习用 Matlab 语言的窗函数法编写设计 FIR 数字滤波器的程序。 3 、了解 Matlab 语言有关窗函数法设计 FIR 数字滤波器的常用函数用法。 4 、掌握 FIR 滤波器的快速卷积实现原理。…

73.矩阵置零 python

矩阵置零 题目题目描述示例 1&#xff1a;示例 2&#xff1a;提示&#xff1a; 题解思路分析Python 实现代码代码解释提交结果 题目 题目描述 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例…

Chromium 132 编译指南 Windows 篇 - 配置核心环境变量 (三)

1. 引言 在之前的 Chromium 编译指南系列文章中&#xff0c;我们已经完成了编译前的准备工作以及 depot_tools 工具的安装与配置。本篇我们将聚焦于 Chromium 编译过程中至关重要的环境变量设置&#xff0c;这些配置是您顺利进行 Chromium 构建的基石。 2. 启用本地编译&…

C++中线程同步与互斥的4种方式介绍、对比、场景举例

在C中&#xff0c;当两个或更多的线程需要访问共享数据时&#xff0c;就会出现线程安全问题。这是因为&#xff0c;如果没有适当的同步机制&#xff0c;一个线程可能在另一个线程还没有完成对数据的修改就开始访问数据&#xff0c;这将导致数据的不一致性和程序的不可预测性。为…

【dockerros2】ROS2节点通信:docker容器之间/docker容器与宿主机之间

&#x1f300; 一个中大型ROS项目常需要各个人员分别完成特定的功能&#xff0c;而后再组合部署&#xff0c;而各人员完成的功能常常依赖于一定的环境&#xff0c;而我们很难确保这些环境之间不会相互冲突&#xff0c;特别是涉及深度学习环境时。这就给团队项目的部署落地带来了…