NVM的安装与配置
目录
- 一、简介
- 二、下载
- 2.1、windows环境下载地址
- 2.2、安装
- 三、配置
- 3.1、查看可安装版本
- 3.2、安装版本
- 3.3、使用和切换版本
- 3.4、模块配置
- 四、其他
- 4.1、全局安装pnpm
- 4.2、常用nvm命令
一、简介
NVM,全称为Node Version Manager,是一个流行的命令行工具,用于在同一台计算机上安装和管理多个版本的Node.js。Node.js是一个基于Chrome V8引擎的JavaScript运行时环境,它允许开发者在服务器端运行JavaScript代码,从而构建更为动态和交互性强的Web应用程序。
NVM通过提供一种简单的方法来切换不同版本的Node.js,极大地简化了Node.js开发环境的管理。它使得开发者能够测试他们的应用程序在不同版本的Node.js上的表现,确保跨版本的兼容性,同时也能够利用新版本Node.js提供的特性和改进。
使用NVM,开发者可以通过简单的命令来安装、切换和卸载Node.js的不同版本。NVM支持Linux、macOS和Windows操作系统,因此无论开发者使用的是哪种操作系统,都可以利用NVM来管理他们的Node.js环境。
NVM的主要特点包括:
-
多版本支持:NVM允许在同一台机器上安装多个版本的Node.js,并轻松切换使用。
-
易于安装:NVM的安装过程简单,通常只需要下载一个脚本并执行即可。
-
跨平台:NVM可以在多种操作系统上运行,包括Linux、macOS和Windows。
-
自动更新:NVM可以配置为自动更新,以确保总是使用Node.js的最新版本。
-
环境隔离:每个使用NVM创建的Node.js环境都是独立的,这意味着不同项目可以使用不同版本的Node.js,而不会相互干扰。
-
社区支持:NVM由一个活跃的开发者社区支持,提供帮助和最佳实践。
-
版本管理:NVM提供了一种清晰的版本管理方式,使得开发者可以轻松地选择特定版本的Node.js来运行他们的项目。
通过使用NVM,开发者可以更加灵活地管理他们的Node.js环境,从而提高开发效率和项目质量。
二、下载
2.1、windows环境下载地址
https://github.com/coreybutler/nvm-windows/releases/tag/1.1.12
2.2、安装
没有这个路径的就创建一个文件夹nodejs,比如你没有nodejs这个文件夹,你要主动去创建一个。不然你后面使用命令
nvm use 版本号
就相当于没效果,就出现使用node,npm命令不是内部命令的问题;这个路径就是你使用版本时,nvm复制了一份node的版本到这个路径,如果路径不存在,肯定就提示命令不对了咯。
很多人本地之前就安装了nodejs,不想卸载,这里就选择了安装了nodejs的目录,也是没问题的。但是我觉得你大可不必。因为你安装完nvm就知道nodejs的安装是多么的简单了,我建议你就记录下你之前安装的版本,先卸载之前安装的nodejs,后面通过nvm去安装即可。
三、配置
3.1、查看可安装版本
安装完之后我们可以执行下面的命令,查看可以安装的nodejs的版本。
nvm list available
运行结果:
C:\Users\admin>nvm list available| CURRENT | LTS | OLD STABLE | OLD UNSTABLE |
|--------------|--------------|--------------|--------------|
| 21.7.2 | 20.12.1 | 0.12.18 | 0.11.16 |
| 21.7.1 | 20.12.0 | 0.12.17 | 0.11.15 |
| 21.7.0 | 20.11.1 | 0.12.16 | 0.11.14 |
| 21.6.2 | 20.11.0 | 0.12.15 | 0.11.13 |
| 21.6.1 | 20.10.0 | 0.12.14 | 0.11.12 |
| 21.6.0 | 20.9.0 | 0.12.13 | 0.11.11 |
| 21.5.0 | 18.20.1 | 0.12.12 | 0.11.10 |
| 21.4.0 | 18.20.0 | 0.12.11 | 0.11.9 |
| 21.3.0 | 18.19.1 | 0.12.10 | 0.11.8 |
| 21.2.0 | 18.19.0 | 0.12.9 | 0.11.7 |
| 21.1.0 | 18.18.2 | 0.12.8 | 0.11.6 |
| 21.0.0 | 18.18.1 | 0.12.7 | 0.11.5 |
| 20.8.1 | 18.18.0 | 0.12.6 | 0.11.4 |
| 20.8.0 | 18.17.1 | 0.12.5 | 0.11.3 |
| 20.7.0 | 18.17.0 | 0.12.4 | 0.11.2 |
| 20.6.1 | 18.16.1 | 0.12.3 | 0.11.1 |
| 20.6.0 | 18.16.0 | 0.12.2 | 0.11.0 |
| 20.5.1 | 18.15.0 | 0.12.1 | 0.9.12 |
| 20.5.0 | 18.14.2 | 0.12.0 | 0.9.11 |
| 20.4.0 | 18.14.1 | 0.10.48 | 0.9.10 |
3.2、安装版本
安装版本很简单,通过下面的命令即可:
#这个版本号就是上面查的版本号,或者是以前的历史存在的版本号都可以
nvm install 版本号
安装nodejs的16.14.2版本
C:\Users\admin>nvm install 16.14.2
Downloading node.js version 16.14.2 (64-bit)...
Extracting node and npm...
Complete
npm v8.5.0 installed successfully.Installation complete. If you want to use this version, type
安装nodejs的20.12.1版本
C:\Users\admin>nvm install 20.12.1
Downloading node.js version 20.12.1 (64-bit)...
Extracting node and npm...
Complete
npm v10.5.0 installed successfully.Installation complete. If you want to use this version, type
接下来可以查看本机安装的nodejs版本
nvm list
运行结果:
C:\Users\admin>nvm list20.12.116.14.2
3.3、使用和切换版本
使用版本很简单就是执行下面的命令
#这里的版本号就是你安装的版本号
nvm use 版本号
比如我们要使用nodejs的16.14.2版本
C:\Users\admin>nvm use 16.14.2
Now using node v16.14.2 (64-bit)C:\Users\admin>nvm list20.12.1* 16.14.2 (Currently using 64-bit executable)C:\Users\admin>node -v
v16.14.2C:\Users\admin>npm -v
8.5.0
比如我们要切换nodejs的20.12.1版本
C:\Users\admin>nvm use 20.12.1
Now using node v20.12.1 (64-bit)C:\Users\admin>nvm list* 20.12.1 (Currently using 64-bit executable)16.14.2C:\Users\admin>node -v
v20.12.1C:\Users\admin>npm -v
10.5.0
是不是很方便?要出现那个*号才行,没有出现,一般就是你前面的路径没有(比如没有创建nodejs文件夹)
3.4、模块配置
正常情况下我还会配置如下几个东西,首先我会去nvm的安装目录(我这里是:C:\myProgram\nvm)新建两个文件夹:
- node_global:设置全局模块路径
- node_cache 设置缓存文件夹
#设置全局模块的安装路径到 “node_global” 文件夹,
npm config set prefix "C:\myProgram\nvm\node_global"#设置缓存到 “node_cache” 文件夹
npm config set cache "C:\myProgram\nvm\node_cache"#查看npm默认存放位置
#使用npm get prefix查看npm全局模块的存放路径
npm get prefix#使用npm get cache查看npm缓存默认存放路径
npm get cache
同时我会把全局模块路径加入环境变量比如我这里的是:C:\myProgram\nvm\node_global
有些还要设置国内镜像(我一般科学上网就无所谓了)
#新的淘宝镜像源
npm config set registry http://registry.npmmirror.com
以上的配置你可以在文件C:\users\admin.npmrc中看到:
prefix=C:\myProgram\nvm\node_global
cache=C:\myProgram\nvm\node_cache
registry=https://registry.npmmirror.com
四、其他
4.1、全局安装pnpm
赶紧体验一把,先全局安装个pnpm压压惊
C:\Users\admin>npm install pnpm -gadded 1 package in 5s1 package is looking for fundingrun `npm fund` for details
npm notice
npm notice New patch version of npm available! 10.5.0 -> 10.5.2
npm notice Changelog: https://github.com/npm/cli/releases/tag/v10.5.2
npm notice Run npm install -g npm@10.5.2 to update!
npm notice
此时全局模块文件夹里就会有pnpm模块了。
4.2、常用nvm命令
nvm命令 | 说明 |
---|---|
nvm list 或者 nvm ls 或者 nvm list installed | 查看已经安装的版本 |
nvm list available | 查看网络可以安装的nodejs版本 |
nvm version | 查看当前nvm的版本 |
nvm install | 安装最新版本 |
nvm uninstall | 卸载指定的nodejs版本 |
nvm use | 切换使用指定的nodejs版本 |
nvm on | 打开nodejs控制 |
nvm off | 关闭nodejs控制 |
nvm proxy | 查看设置与代理 |
nvm root [path] | 设置和查看root路径 |
nvm reinstall-packages | 在当前版本node环境下,重新全局安装指定版本号的npm包 |
相关文章:

NVM的安装与配置
目录 一、简介二、下载2.1、windows环境下载地址2.2、安装 三、配置3.1、查看可安装版本3.2、安装版本3.3、使用和切换版本3.4、模块配置 四、其他4.1、全局安装pnpm4.2、常用nvm命令 一、简介 NVM,全称为Node Version Manager,是一个流行的命令行工具&a…...

[Java EE] 多线程(一) :线程的创建与常用方法(上)
1. 认识线程 1.1 概念 1.1.1 什么是线程 ⼀个线程就是⼀个"执⾏流".每个线程之间都可以按照顺序执⾏⾃⼰的代码.多个线程之间"同时"执⾏ 着多份代码. 还是回到我们之前的银⾏的例⼦中。之前我们主要描述的是个⼈业务,即⼀个⼈完全处理⾃⼰的…...

Linux安装docker(含Centos系统和Ubuntu系统)
一、Centos系统 1. 卸载旧版本依赖 sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine 2. 设置仓库 安装所需的软件包。yum-utils 提供了 yum-config-manager &…...

【第十五届蓝桥杯大赛软件赛省赛】———— C/C++ 大学B组
蓝桥杯2024年15届省赛b组原题献上...
Redis+lua脚本限制ip多次输入错误密码
Redislua脚本限制ip多次输入错误密码 不能锁username,因为如果有人恶意保留破解密码的话。会导致用户本人无法登录。 这里我采用 以ip的方式进行锁定。利用redis 设置key:ip。value:当前ip尝试登录的次数 实现逻辑 逻辑简单,假设…...

全球顶级的低代码开发平台,你知道几个?
什么是低代码开发平台? 低码开发平台是一个应用程序,提供图形用户界面编程,从而以非常快的速度开发代码,减少了传统的编程工作。 这些工具有助于快速开发代码,最大限度地减少手工编码的努力。这些平台不仅有助于编码,而且还能快速安装和部署。 低码开发工具的好处 低代码平…...
11-1.Vue2.x基本列表—v-for
文章目录 Vue2.x基本列表—v-for Vue2.x基本列表—v-for <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><title>基本列表</title><script type"text/javascript" src"../js/vue.j…...

一本书精通推荐算法,轻松搞定入门、面试、进阶
当前互联网高速发展,用户规模和内容规模均迅猛提升。 身处信息严重过载的时代,如何让用户从海量信息中发现自己感兴趣的内容,成了很多公司的核心问题。 在此背景下,搜索系统和推荐系统应运而生。 前者主要解决用户主动寻找内容…...

ADB的基本语法及常用命令
学习网址 ADB命令的基本语法如下: adb [-d|-e|-s <serialNumber>] <command> 如果有多个设备/模拟器连接,则需要为命令指定目标设备。 参数及含义如下: 常用命令如下: 1. 启动ADB服务 adb start-server 2. 停止…...

Linux之bpfjit(2)使用分析和mini-tcpdump实现
Linux之bpfjit(2)使用分析和mini-tcpdump实现 Author: Once Day Date: 2024年4月13日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 全系列文章可以参考专栏:…...
adb常用命令汇总
Android Debug Bridge (adb) 是一个多功能命令行工具,它允许你与连接的Android设备或在电脑上的Android模拟器进行通信。下面列出了一些常用的adb命令: 启动adb服务: adb start-server停止adb服务: adb kill-server查看已连接的设…...

JVM虚拟机(三)垃圾回收简介、垃圾回收算法、分代回收、垃圾回收器种类、G1垃圾回收器
目录 一、什么是垃圾回收?1.1 什么是垃圾回收?1.2 什么对象能被垃圾回收?1)引用计数法2)可达性分析算法 二、JVM 垃圾回收算法2.1 标记清除算法2.2 标记整理算法(标记压缩算法)2.3 复制算法2.4 …...

JavaScript基础:js介绍、变量、数据类型以及类型转换
目录 介绍 引入方式 内部方式 外部形式 注释和结束符 单行注释 多行注释 结束符 输入和输出 输出 输入 变量 声明 赋值 关键字 变量名命名规则 常量 数据类型 数值类型 字符串类型 布尔类型 undefined 类型转换 隐式转换 显式转换 Number ✨介绍 &a…...

【牛客SQL快速入门】SQL基础(三)
一、条件函数 IF 条件函数 IF函数是最常用到的条件函数,写法为 if(xn,a,b),xn代表判断条件,如果xn时,那么结果返回a,否则返回b。 -- 把非北京大学的用户统一归为其他大学 Select device_id,if(university ‘北京大…...

Pytorch手撸Attention
Pytorch手撸Attention 注释写的很详细了,对照着公式比较下更好理解,可以参考一下知乎的文章 注意力机制 import torch import torch.nn as nn import torch.nn.functional as Fclass SelfAttention(nn.Module):def __init__(self, embed_size):super(S…...

PyCharm 2024.1 发布:全面升级,助力高效编程!
PyCharm 2024.1 发布:全面升级,助力高效编程! 文章目录 PyCharm 2024.1 发布:全面升级,助力高效编程!摘要引言 Hugging Face:模型和数据集的快速文档预览针对 JavaScript 和 TypeScript 的全行代…...
Nginx基础(06)
Nginx基础(05) uWSGI 介绍 uWSGI 是一个 Web服务器 主要用途是将Web应用程序部署到生产环境中 可以用来连接Nginx服务与Python动态网站 1. 用 uWSGI 部署 Python 网站项目 配置 Nginx 使其可以将动态访问转交给 uWSGI 安装 python 工具及依赖 安…...

【Qt 学习笔记】QWidget的windowOpacity属性 | cursor属性 | font属性
博客主页:Duck Bro 博客主页系列专栏:Qt 专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ QWidget的windowOpacity属性 | cursor属性 | font属性 文章编号&#…...

Python爬虫:requests模块的基本使用
学习目标: 了解 requests模块的介绍掌握 requests的基本使用掌握 response常见的属性掌握 requests.text和content的区别掌握 解决网页的解码问题掌握 requests模块发送带headers的请求掌握 requests模块发送带参数的get请求 1 为什么要重点学习requests模块&…...
C++traits
traits C的标准库提供了<type_traits>,它定义了一些编译时基于模板类的接口用于查询、修改类型的特征:输入的时类型,输出与该类型相关的属性 通过type_traits技术编译器可以回答一系列问题:它是否为数值类型?是否为函数对象…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...

idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...

YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...

Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...

(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...