Nodejs多版本切换工具NVM

devtools/2024/10/20 20:57:49/

1 nvm介绍

NVM(Node Version Manager)是一个用于管理多个Node.js版本的工具,它允许用户在同一台计算机上安装和切换不同版本的Node.js。这对于开发者来说非常有用,因为不同的项目可能需要不同版本的Node.js环境。

NVM功能特性:

  • 多版本管理:NVM允许你在同一台机器上安装多个版本的Node.js,并在它们之间轻松切换。

  • 一键安装:通过NVM,你可以一键安装最新版本的Node.js,或者安装特定版本的Node.js。

  • 一键卸载:如果需要,NVM也支持一键卸载Node.js。

  • 环境隔离:每个项目可以指定使用特定的Node.js版本,这样可以避免不同项目之间的版本冲突。

  • 自动使用项目版本:NVM可以自动检测项目中的.nvmrc文件,并使用该文件指定的Node.js版本。

  • 跨平台支持:NVM有多个版本,支持Windows、macOS和Linux。

  • 插件支持:NVM支持插件,可以扩展其功能。

  • 简单易用:NVM提供了简单的命令行界面,易于使用。

  • 自动更新:NVM可以配置为自动更新Node.js到最新版本。

  • 兼容性:NVM与npm(Node.js的包管理器)完全兼容,可以无缝管理全局npm包。

使用NVM,开发者可以:

  • 为不同的项目维护不同的Node.js环境。
  • 测试项目在不同版本的Node.js上的行为。
  • 避免全局安装Node.js,这样可以减少对系统环境的潜在影响。

NVM的安装和使用都相对简单,是Node.js开发者常用的工具之一。

2.nvm安装

2.1 下载安装

下载地址

github.com/coreybutler/nvm-windows/releases

下载最新版本的nvm-setup.zip或nvm-noinstall.zip。推荐下载nvm-setup.zip,因为它是安装版,使用起来更简单

选择安装目录

关联nodejs,假如你已经安装了nodejs,会弹窗是否由nvm控制询问框,确认点击就行

安装完成后,打开命令行工具,查看是否成功,如下,出现你已经安装的nodejs版本,就是安装成功了。

C:\Users\ddf-1>
C:\Users\ddf-1>nvm list* 16.14.2 (Currently using 64-bit executable)C:\Users\ddf-1>

2.2 安装问题

安装NVM时可能会遇到的一些常见问题,其解决方案如下:

  • 安装路径中包含空格:这可能导致环境变量设置不正确,从而无法识别Node.js命令。确保安装路径中没有空格。

  • 下载速度慢或失败:由于默认的Node.js和npm镜像服务器在国外,国内用户可能会遇到下载速度慢或失败的问题。可以通过修改NVM的配置文件settings.txt,设置国内镜像源,如淘宝的npm镜像。

  • 权限问题:在安装过程中可能会遇到权限不足的问题,尤其是当尝试在系统路径中写入数据时。确保以管理员身份运行安装程序和命令提示符。

  • Node.js版本安装失败:有时候特定的Node.js版本可能因为依赖问题或其他原因而无法安装。可以尝试安装其他稳定版本或者LTS版本。

  • npm命令找不到:安装Node.js后,可能会发现npm命令无法识别。这可能是因为npm没有正确安装或者其路径没有添加到环境变量中。可以尝试手动下载npm或者通过NVM重新安装Node.js和npm。

  • 证书问题:在安装或更新Node.js时,可能会遇到SSL证书验证失败的问题。这通常是因为系统时间设置不正确或者证书已经过期。检查系统时间并确保其准确,或者更换镜像源。

  • 环境变量配置问题:有时候即使安装了NVM和Node.js,环境变量可能没有正确设置,导致无法在命令行中使用Node.js。需要检查系统环境变量中是否有NVM和Node.js的路径,并确保它们被正确添加。

  • NVM无法识别新安装的Node.js版本:如果NVM无法识别新安装的Node.js版本,可能是因为NVM没有正确更新其版本列表。可以尝试重新启动命令行窗口或者重新运行NVM的安装命令。

  • 使用nvm use命令时出现乱码或错误:这可能是因为NVM的配置文件中设置了错误的字符编码。确保配置文件使用的是UTF-8编码,或者尝试清除NVM的缓存并重新安装。

  • npm镜像问题:如果npm镜像地址过期或不再可用,需要更新npm的镜像地址。可以通过npm config set registry命令来设置新的镜像地址。

3.nvm常见命令

3.1 禁用node.js版本管理

nvm off                     // 禁用node.js版本管理

3.2 启用node.js版本管理

nvm on                      // 启用node.js版本管理

3.3 安装node.js的命名 version是版本号

nvm install <version>       // 安装node.js的命名 version是版本号 例如:nvm install 16.8.1

3.4 卸载node.js是的命令

nvm uninstall <version>     // 卸载node.js是的命令,卸载指定版本的nodejs,当安装失败时卸载使用

3.5 显示所有安装的node.js版本

nvm ls                      // 显示所有安装的node.js版本,当前使用的版本前会带*号

3.6 显示可以安装的所有node.js的版本

nvm list available          // 显示可以安装的所有node.js的版本

3.7 切换到使用指定的nodejs版本

nvm use <version>           // 切换到使用指定的nodejs版本

3.8 显示nvm版本

nvm v                       // 显示nvm版本

3.9 安装最新稳定版

nvm install stable          // 安装最新稳定版

3.10 查看帮助信息

nvm help

3.11 更新

nvm update

 

4.nvm使用

在实际使用,需要以管理员身份打开cmd,进行操作。

首先,我们确认下自己的开发使用到的nodejs版本有哪些,使用nvm命令全部安装上

nvm install <version>

其次,在使用的时候用到那个版本,使用命令直接切换

nvm use <version>

配置镜像,提高下载速度

配置nvm使用淘宝的npm镜像以加速下载,可以通过修改nvm安装目录下的settings.txt文件,或者使用命令行配置

nvm npm_mirror https://npmmirror.com/mirrors/npm/
nvm node_mirror https://npmmirror.com/mirrors/node/

5.最后

感谢大家,请大家多多支持!


http://www.ppmy.cn/devtools/120841.html

相关文章

Python 封装 socket 为 [TCP/UDP/MULTICAST] 服务端

在新线程中创建 TCP/UDP/MULTICAST 协议的服务端套接字&#xff0c;接收客户端的连接请求或数据&#xff0c;并调用 on_recv 回调函数处理数据。 #!/usr/bin/env python # -*- coding: utf-8 -*- import socket import threading import multiprocessingclass ServerSocket:de…

PHP中的时间和日期详解

文章目录 PHP中的时间和日期详解一、引言二、PHP日期和时间基础1、date() 函数1.1、语法1.2、常用格式字符 2、获取当前日期和时间 三、设置时区四、创建日期1、使用 mktime()2、使用 strtotime() 五、时间戳函数1、time()2、例子5.1、获取当前时间戳并格式化5.2、计算未来时间…

【rCore OS 开源操作系统】Rust 练习题题解: Structs

【rCore OS 开源操作系统】Rust 练习题题解: Structs 摘要 rCore OS 开源操作系统训练营学习中的代码练习部分。 在此记录下自己学习过程中的产物&#xff0c;以便于日后更有“收获感”。 后续还会继续完成其他章节的练习题题解。 正文 structs1 题目 // structs1.rs // //…

24.2.29蓝桥杯|单位换算--8道题

本篇或者本系列文章使用蓝桥云课平台&#xff0c;借助CSDN梳理思路&#xff0c;给自己做一个电子笔记 单位换算类题目注意事项&#xff1a; 在参加蓝桥杯等编程竞赛时&#xff0c;进行单位换算是一个常见的题目类型&#xff0c;特别是涉及到数据存储和传输的问题。在处理单位换…

SQL高级语法

聚合函数 SELECT vendor_id, AVG(price) AS avg_price FROM Products WHERE price > 50GROUP BY vendor_id HAVING AVG(price) > 100 ORDER BY avg_price DESC; PARTITION OVER用于在分区内进行计算。它可以在每个分区内对数据进行排序、聚合、分组等操作。 SELECT id, n…

priority_queue优先队列

**优先队列** 使用函数库实现&#xff0c;头文件<queue> 1&#xff09;大根堆&#xff08;默认&#xff09;&#xff1a;priority_queue<队列中元素类型> 队列名&#xff1b; 小根堆&#xff1a;&#xff08;实现可向元素*-1再入最大优先队列&#xff09; prio…

力扣9.28

377. 组合总和 Ⅳ 给你一个由 不同 整数组成的数组 nums &#xff0c;和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。 题目数据保证答案符合 32 位整数范围。 数据范围 1 < nums.length < 2001 < nums[i] < 1000nums 中的…

Windows下jenkins执行远程sh脚本中文乱码问题

找到jenkins的安装目录下的jenkins.xml文件&#xff0c;在启动参数后面加上-Dfile.encodingutf-8 然后在服务里重启jenkins服务即可