nvm介绍、安装、报错处理以及使用

news2025/7/19 14:26:24

前言

工作中我们偶尔可能同时在进行多个项目开发,而多个不同的项目所使用的 node 版本又是不一样的,在这种情况下,对于维护多个版本的node 将会是一件非常麻烦的事情,因为需要操作做卸载安装操作,而nvm 就是为解决这个问题而产生的,使用 nvm 可以方面的在同一台电脑上进行管理多个node 版本之间切换,接下来我就对 nvm 介绍、安装、使用以及常见报错处理简单说说

介绍

nvm 全名 node.js version management ,顾名思义是一个管理多个 nodejs 的版本工具。通过它可以安装和切换不同版本的 nodejs, nvmn 都是node 版本管理工具,为了解决 node.js各种版本存在不兼容现象可以通过它可以安装和切换不同版本

下载

nvm 官网地址: https://github.com/coreybutler/nvm-windows/releases 打开网址我们可以看到安装包

  • nvm-setup.zip:安装版,推荐使用

  • nvm-noinstall.zip: 绿色免安装版,但使用时需进行配置。

nvma软件

安装

  1. 安装 nvm 其实很简单,跟其他普通软件一样,傻瓜式安装,双击安装文件 nvm-setup.exe

在这里插入图片描述

  1. 选择nvm安装路径

在这里插入图片描述

  1. 选择nodejs路径,这步安装需要注意的是你之前是否安装过 node 版本,如果安装过最好选择你之前安装过 node 目录(注意此目录很重要哦)

在这里插入图片描述

  1. 确认安装即可,但是如果你之前安装过 node 此时 nvm 会检测到提示是否把安装的版本加载到 nvm 版本管理中

确认安装即可

  1. 如果之前你没有安装过 node 则完成上面操作等待即安装完成,但是如果之前有就会出现下面提示,

在这里插入图片描述
上面提示是告诉我们是否要将已有 node 添加到 nvm 版本中进行控制,一般我们选择是将以后添加进行 nvm 版本控制

在这里插入图片描述

  1. 出现下面提示表示我们软件安装完成

在这里插入图片描述

  1. 软件安装完确认是否正常,打开 cmd 输入 nvm version 查看版本号,如果能打印出版本号,如下显示表示正常

在这里插入图片描述

命令提示

  • nvm arch:显示node是运行在32位还是64位

  • nvm install <version> [arch] :安装 node, version 是特定版本也可以是最新稳定版本 latest。可选参数arch指定安装32位还是64位版本,默认是系统位数。可以添加 --insecure 绕过远程服务器的 SSL

  • nvm list [available] :显示已安装的列表。可选参数 available,显示可安装的所有版本。list可简化为ls

  • nvm on :开启 node.js 版本管理

  • nvm off :关闭 node.js 版本管理

  • nvm proxy [url] :设置下载代理。不加可选参数 url,显示当前代理。将 url 设置为 none 则移除代理

  • nvm node_mirror [url] :设置node镜像。默认是 https://nodejs.org/dist/ 如果不写url,则使用默认 url。设置后可至安装目录 settings.txt 文件查看,也可直接在该文件操作

  • nvm npm_mirror [url] :设置npm镜像。https://github.com/npm/cli/archive/ 如果不写 url,则使用默认url。设置后可至安装目录 settings.txt 文件查看,也可直接在该文件操作

  • nvm uninstall <version> :卸载指定版本 node

  • nvm use [version] [arch] :使用制定版本 node。可指定32/64位

  • nvm root [path] :设置存储不同版本 node 的目录。如果未设置,默认使用当前目录

  • nvm version :显示 nvm 版本。version 可简化为 v

常用命令

  1. 查看本地安装所有版本以及当前使用的版本,有可选参数available,显示所有可下载的版本
nvm list [available]

当我们不知道 node 有哪些版本时,可以使用命令 nvm list available 查看,如下图

在这里插入图片描述

  1. 查看到 node 版本后,推荐使用 LTS 中任意一个版本进行安装,命令中版本自定义,例如下
nvm install 14.17.2

需要注意下载时因为 node 官方服务器在国外,所以下载可能失败,此时我们可以配置nvm镜像,在安装目录下settings文件中新增如下两行


node_mirror: https://npm.taobao.org/mirrors/node/ 
npm_mirror: https://npm.taobao.org/mirrors/npm/

  1. 使用 nvm 进行切换 node 版本使用特定版本
nvm use 16.13.0

注意事项这里切换版本时使用 cmd 时一定要使用管理员身份打开不然会切换不成功报如下错误,出现下面错误说明切换不成功

在这里插入图片描述

解决上面报错就是使用管理员身份运行 cmd 再次执行切换命令,如下显示说明切换成功,当切换成功时,可查看当前版本

在这里插入图片描述

  1. 卸载我们不需要的 node 版本
nvm uninstall 14.18.2

注意事项

通过上面的一系列的安装,如果你够幸运的话大概率是安装成功了,但是也不排除你会出现各种问题,下面说说可能出现的问题以及怎么处理,并聊聊你需要知道的一些 nvm 知识

通过 nvm install 安装 node 版本都会放入在 nvm 安装的目录下,如果你忘记可以使用 nvm root 命令查看

在这里插入图片描述

查看已安装版本,如果你之前没有安装过 node 并且安装好 nvm 并没有下载 node 时,使用 nvm list 或者 nvm ls 查看目前已经安装版本此时会显示空,当然如果已经安装多个版本,则已安装的 node 会全部列出(当前版本号前面没有 ※ , 此时还没有使用任何一个版本,这时使用 node时会报错 ,需切换要使用的版本,此时版本前会有 ※ 号则表示当前使用的 node 版本)

在这里插入图片描述

nvm 管理 node 版本核心的工作原理,当切换不同版本的 node 时将不同的版本软链接(window可类似看做快捷方式)到 node 安装的目录下, 而执行 node 时使用,通过软链接实际执行的是 nvm 安装下的对应 node 版本,注意如果 node 安装目录中没有出现则表示你当前没有使用对应的 node ,此时你应该切换到你需要的版本,再次查看就可以看到

在这里插入图片描述

在这里插入图片描述

nvm 使用不同 node 版本下载全局包时互不影响,相互独立,为什么会这样这跟上面讲 nvm 原理有关

在这里插入图片描述

通过上面学习相信我们已经知道 nvm 基本使用了,但是下面可能出现的问题是绝大部分安装 nvm 都可能出现的,那就是如果我们通过 npm 全局安装的包并不能使用问题,运行安装好的命令提示命令找不到,这是一件非常糟糕的事情,如下图

在这里插入图片描述

我们明明是全局安装过包的为什么不能使用了,接下来我们进入 node 安装目录再次进行上面操作神奇的事情发生,如下图

在这里插入图片描述

此时我们发现了问题所在吧,出现这种情况我们的第一反应肯定是环境变量没有配置导致

对 npm 进行简单配置,并添加环境变量,首先我们先查看 npm 的全局配置使用 npm config ls 通过下面命令进行设置,如果不知道 npm 全局下载包装目录可以使用命令 npm root -g

# 全局下载安装包存放的目录
npm config set prefix "E:\nodejs\node_global"
# 设置 npm 下载缓存(注意缓存路径可以随意,但是还是建议在安装 node 的目录中高版本的 node 中自带)
npm config set cache "E:\nodejs\node_cache"  
# 设置淘宝源
npm config set registry "https://registry.npm.taobao.org/" 

在这里插入图片描述

接下来就是对环境变量做配置,添加系统环境配置

在这里插入图片描述
在这里插入图片描述

通过上面简单配置,我们再重新打开 cmd 查看全局安装的包是否可以使用了,这时我们发现并没有报错,说明可以使用

在这里插入图片描述

经过几经波折终于我们可以愉快的使用 nvm 管理我们多个 node 版本的,希望能对大家有帮助

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

关于Vue3的defineProps用法

之前只是单纯的会用&#xff0c;因为vue关于父子组件通讯差别有一点点大。 1.在父组件内传递变量的时候&#xff0c;需要加冒号:&#xff0c;否则你就只是单纯的传递了一个字符串而已。 2.在子组件里不需要引入defineProps就可调用该函数去接收父组件传来的属性。 我个人在这里…

axios基本使用及跨域问题详解

前端请求自然也发展迅速&#xff0c;从原生的XHR到jquery ajax&#xff0c;再到现在的axios和fetch。axios&#xff08; https://axios-http.com/zh/ &#xff09;是Vue推荐的http库&#xff0c;这个还是要了解一点的。 安装 $ npm install axios基本使用的例子 1、在main.j…

Vue项目:学生管理系统

&#x1f482; 个人主页: 陶然同学&#x1f91f; 版权: 本文由【陶然同学】原创、在CSDN首发、需要转载请联系博主&#x1f4ac; 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦&#x1f485; 想寻找共同成长的小伙伴&#xff0c;请点击【Java全栈开发社区】…

Nginx的安装配置教程

一、Nginx的下载与安装 Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件&#xff08;IMAP/POP3&#xff09;代理服务器。其特点是占有内存少&#xff0c;并发能力强&#xff0c;事实上nginx的并发能力在同类型的网页服务器中表现较好 1.下载 在Nginx的官网的下载页面…

JavaScript-匿名函数

什么是匿名函数 1、匿名函数,即没有名称的函数 2、如果单独只写一个匿名函数&#xff0c;此时是不符合语法要求的 会报错。需要给 匿名函数包裹一个括号&#xff0c;使之成为表达式。 3、被小括号包裹的内容会被js识别为一个函数表达式 如何执行和使用匿名函数&#xff1f; …

前端直传阿里云OSS

阿里云对象存储服务&#xff08;Object Storage Service&#xff0c;简称OSS&#xff09;&#xff0c;是阿里云对外提供的海量、安全、低成本、高可靠的云存储服务。 目前通过Web端直传文件&#xff08;Object&#xff09;到OSS&#xff0c;有两种方案&#xff1a; 一、利用OSS…

web渗透之文件上传漏洞

目录一、原理二、利用方式三、文件上传的风险处四、文件上传漏洞的危害五、文件上传漏洞常见的绕过方式1、前端绕过检测2、mime类型检测绕过3、黑名单绕过&#xff08;1&#xff09;、相似扩展名&#xff08;2&#xff09;、apache配置文件&#xff08;3&#xff09;、大小写绕…

如何将html模板资源转为vuecli项目

1.目标 将找到的html素材模板&#xff0c;转换为vue的文件。 这个网上照了一圈&#xff0c;没找到合适的方案&#xff0c;就自己尝试弄了一下 目标效果 2.具体步骤 1. 通过vueclie 创建项目 vue create 项目名称然后把默认的样式删除了 2. 将静态资源放到vue项目的 publi…

【python】自动填写问卷星问卷及提交

前言&#xff1a;问卷是很好的网络调查方式之一&#xff0c;近年来&#xff0c;问卷星被广泛应用于各方面的调查。本文介绍了利用python代码自动填写问卷星基本题目&#xff0c;拥有自动填写、解决智能验证、批量提交问卷等功能。 目录 1.下载浏览器驱动 2. selenium基本配置…

【Java 基础篇】Java 初识、编译运行机制及开发环境搭建

一、Java 语言初识二、Java 编译运行机制2.1 JVM、JRE、JDK 三大概念介绍2.2 Java 是如何运行的三、Java 开发环境搭建(文末附下载地址)四、第一个 Java 项目4.1 创建项目和 .Java 源文件4.2 输出 hello world一、Java 语言初识 Java 是由 Sun Microsystems 公司于 1995 年 5 …

十大经典排序算法(下)

&#x1f353;个人主页&#xff1a;bit.. &#x1f352;系列专栏&#xff1a;Linux(Ubuntu)入门必看 C语言刷题 数据结构与算法 HTML和CSS3 目录 1.6 快速排序 1. 算法步骤 2. 动图演示 3.代码实现 1.7 堆排序 1. 算法步骤 2. 动图演示 3. 代码实现 1.8 计数排…

JavaScript注册监听事件与清除监听事件

JavaScript中有两种方法可以注册监听事件&#xff0c;一种是传统的注册方式&#xff0c;on事件名称的注册方法&#xff0c;如btn.onclick,还有方法监听事件注册方式&#xff0c; addEventListener()和ie8以下的attachEvent()。 注册监听事件 传统方式 语法格式&#xff1a;元…

ES6笔记————let,箭头函数,剩余参数

目录 一.let,var,const区别 let const 区别 二&#xff0c;解构 1 数组解构 2对象解构 三&#xff0c;箭头函数 1 基础语法 2 省略写法 3 对象方法里的this 4 apply/call调用时的this 5 箭头函数中this 8 箭头函数应用 四&#xff0c;剩余函数 一.let,var,con…

【bug】Failed at the node-sass@4.14.1 postinstall script(终于圆满解决)

花了两个小时才解决 首先是从git上克隆项目到本地&#xff0c;然后安装nodele_modules&#xff0c;输入npm i安装 安装到一半报错 npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! node-sass4.14.1 postinstall: node scripts/build.js npm ERR! Exit status 1 npm ERR! …

关于 Vue “__ob__:Observer“ 属性的解决方案

问题描述 我们操作 Vue 数据的时候&#xff0c;经常会看到这个属性: __ob__:Observer在我们操作这个数据的时候&#xff0c;如果想要单独拿这个数据里面的值&#xff0c;就会返回 undefined经过我在网上查找相关资料&#xff0c;发现 __ob__:Observer 是 Vue 中一个非常重要的…

【vue】diff 算法详解

一、diff算法是什么 diff算法是一种通过同层的树节点进行比较的高效算法 diff算法的目的就是找出新旧不同虚拟DOM之间的差异,使最小化的更新视图&#xff0c;所以 diff 算法本质上就是比较两个js对象的差异 特点 1. 比较只会在同层级进行&#xff0c;不会跨层级比较 2. 在diff…

原生JS实现飞机大战游戏 超详细解析 快来做一个自己玩吧

目录 1. 案例分析&#x1f4a8; 2. 适配设备 &#x1f4a8; 3. 背景滚动&#x1f4a8; 4. hero操作&#x1f4a8; 5. 敌机的创建与运动&#x1f4a8; 6. 子弹的创建与运动&#x1f4a8; 7. 碰撞检测&#x1f4a8; 8. 统计得分&#x1f4a8; 9. 设置开始与结束界面&…

疫情散去想看电影,使用css3动画实现一个阿凡达2完美开场

在历经了艰苦卓绝的3年抗疫后&#xff0c;疫情终于还是来了&#xff0c;很多小伙伴变成了小洋人酸奶&#xff0c;我相信过不了多少天&#xff0c;疫情终将散去&#xff0c;那个时候就可以和家人走进电影院啦。 今天用css布局一个阿凡达2的影院场景&#xff0c;提前过一过瘾。 目…

《uni-app》表单组件-form表单

本文分享的Form组件为uni-app的内置组件Form&#xff0c;非扩展组件&#xff0c;两者在用法上其实大同小异&#xff0c;只是扩展组件的属性以及事件更多…没有本质上的区别&#xff5e; 《uni-app》表单组件-form表单一. 简介二. 基础用法三. submit事件四. reset事件五. repor…

Tomcat安装配置及IDEA配置方法【亲测有效】

Tomcat安装配置及IDEA配置1.下载Tomcat2.配置Tomcat环境变量3.安装Tomcat4.启动Tomcat5.测试Tomcat6.IDEA配置Tomcat1.下载Tomcat Tomcat9官网下载地址 选择自己需要的版本&#xff0c;一般选择Windows 64位压缩包版本&#xff1a; 下载完后安装解压即可&#xff0c;解压后的…