前言
注意:安装nvm时不能安装任何node版本(如存在请删除后再安装nvm),再检查环境变量,如果还有node.js相关也删掉,保证系统无任何node.js 残留。
卸载完之后cmd命令行输入node -v
查看是否还能查到node信息,无的话表示删除干净。
一、卸载node
如果已经安装了node,那么在安装nvm之前,需要先卸载node,如果没有安装可以直接跳过这一步到下一步了。
删除前可查当前使用的node版本,方便后续决定使用哪个版本的node。
- 控制面板 -> 卸载程序 -> 卸载nodejs
- 为了确保彻底删除node,看下node安装目录中还有没有node文件夹,有的话一起删除。
- 删除以下文件夹(如果存在的话)
- C:\Program Files (x86)\Nodejs
- C:\Program Files\Nodejs
- C:\Users{User}\AppData\Roaming\npm
- C:\Users{User}\AppData\Roaming\npm-cache
- 删除C:\Users\用户名 下的 .npmrc文件以及 .yarnrc 文件
- 环境变量中npm、node的所有相关统统删掉
二、nvm是什么?
nvm(node.js version management),是一个nodejs的版本管理工具。nvm和n都是node.js版本管理工具,为了解决node.js各种版本存在不兼容现象可以通过它可以安装和切换不同版本的node.js。【可同时在一个环境中安装多个node.js版本(和配套的npm)】
nvm相关命令
- nvm list 查看已经安装的版本
- nvm list installed 查看已经安装的版本
- nvm list available 查看网络可以安装的版本
- nvm version 查看当前的版本
- nvm install 安装最新版本
- nvm nvm use ## 切换使用指定的版本
- node nvm ls 列出所有版本 nvm current显示当前版本
- nvm alias ## 给不同的版本号添加别名
- nvm unalias ## 删除已定义的别名
- nvm reinstall-packages ## 在当前版本node环境下,重新全局安装指定版本号的npm包
- nvm on 打开nodejs控制
- nvm off 关闭nodejs控制
- nvm proxy 查看设置与代理
- nvm node_mirror [url] 设置或者查看setting.txt中的node_mirror,如果不设置的默认是 Index of /dist/
- nvm npm_mirror [url] 设置或者查看setting.txt中的 npm_mirror,如果不设置的话默认的是:https://github.com/npm/npm/archive/
- nvm uninstall 卸载制定的版本
- nvm use [version] [arch] 切换制定的node版本和位数
- nvm root [path] 设置和查看root路径
三、nvm安装
1. 官网下载 nvm 包
https://github.com/coreybutler/nvm-windows/releases
2. 安装 nvm-setup.exe
注意安装路径的文件夹名称不要出现中文,空格等,否则后期npm使用的时候会出现符号格式不正确问题。
继续点击 Next 就行。
3. 配置路径和下载镜像
安装完nvm后先不要着急安装node版本。
找到nvm安装路径 ->找到 setting.txt 文件 ->新增两行信息,配置下载源
node_mirror: https://npmmirror.com/mirrors/node/
npm_mirror: https://npmmirror.com/mirrors/npm/
增加后如下,然后保存退出。
第一行是 nvm安装路径
第二行是 nodejs路径
第三行是 node下载镜像
第四行是 npm下载镜像
注意:因为淘宝的镜像域名更换,由于 npm.taobao.org 域名HTTPS证书到期更换为 npmmirror.com,那么就会导致之前使用该镜像域名下载依赖的安装包会出现问题。
执行报错信息如下:
nvm list available // 查看node所有版本
4. 检查nvm是否安装完成
win + R
,调用cmd
,输入nvm
或nvm-v
,出现下面这一堆就表示安装成功了。
如果安装不成功,查看之前自己安装的 node.js 有没有彻底删除、安装nvm过程中有没有漏掉什么,可重新卸载再安装一次nvm包。
四、使用nvm安装node版本
安装完成后开始插入nodejs首先使用nvm list available
查询可插入版本号,LST表示可插入稳定版本。【如未指定版本,建议安装LTS下的版本】
- 安装指定node.js版本
nvm install 20.17.0
nvm use
切换node版本。(如果报错,用管理员身份打开重新 nvm use 你指定的版本)
nvm use 20.17.0
- 安装完成后可以分别输入命令行
node -v
和npm -v
,检验node.js以及对应npm是否安装成功
- nvm list 查看当前已安装的node.js版本,带*号的是正在使用的
nvm list
或者
nvm ls
- 删除某node.js版本
nvm uninstall node版本号 //例如:nvm uninstall 16.14.0)即可删除对应版本
- 比如我现在安装的是 v20.17.0 版本。
v16.14.0 文件内部是
node_modules内部是这样的
五、修改npm默认镜像源为淘宝镜像
修改npm镜像源为淘宝镜像,加快npm包的下载速度,减少发生连接错误和超时的概率。
npm config set registry https://registry.npmmirror.com
检查是否设置淘宝镜像成功(会返回这个地址表示成功:https://registry.npmmirror.com)
npm config get registry
关于使用 淘宝镜像 https://registry.npm.taobao.org 报错的问题
是因为从 2024 年1 月 22 日,淘宝原镜像域名(registry.npm.taobao.org)的 HTTPS 证书正式到期,这就导致旧的 npm 淘宝镜像在使用时出错了,所以遇到上述问题,或者还在使用旧的 npm 淘宝镜像,直接将 npm 源切换到新的源即可,文章链接:技术资讯:npm 淘宝镜像正式到期,赶紧更新!
// 1. 清空缓存
npm cache clean --force
// 2. 切换新源
npm config set registry https://registry.npmmirror.com
六、使用 nrm 来管理 npm 源
这部分想管理npm源就下载一下,不下载只要上一步完成切换淘宝源镜像也可以,不会影响下面的其他操作,看个人意愿了。
我们可以使用 nrm 来管理 npm 源,特别是当需要在不同的网络环境之间切换时,它可以提供更好的包管理体验。
nrm(npm registry manager)是一个用于管理和切换 npm 源的命令行工具。它允许您在不同的 npm 源之间进行切换,以加快包的下载速度,或者解决特定源无法访问的问题。nrm 提供了一组命令,可以列出可用的 npm 源、添加新源、测试源的响应速度,并切换当前使用的源。
首先,通过以下命令来安装 nrm:
npm install -g nrm
以下是一些常见的 nrm 命令:
1)列出可用的源:当前配置的所有可用 npm 源以及它们的名称和 URL。
nrm ls
例如:
2)切换源:将当前的 npm 源切换为指定的源。可以使用源的名称或 URL 作为 参数。
nrm use <registry>
3)添加源:添加一个新的 npm 源并指定其名称和 URL。
nrm add <registry> <url>
4)删除源:删除指定的 npm 源,需要提供源的名称或 URL 作为 参数。
nrm del <registry>
5)测试源的速度:测试指定源的响应速度,并显示测试结果。
nrm test <registry>
6)显示当前使用的源:当前正在使用的 npm 源的名称和 URL。
nrm current
七、环境变量配置
配置步骤
-
首先创建
"node_global"
和“node_cache”
两个文件夹进行全局安装的时候安装对应的库到这两个文件。
在nvm的nodejs
安装路径D:\Develop\nvm
新建两个文件夹命名为"node_global"
和“node_cache”
。
-
打开cmd命令行工具,输入以下两句操作(两个路径就是新建上面两个文件夹的路径,主要目的是方便后面window机器使用方便)
npm config set prefix "D:\Develop\nvm\node_cache" npm config set cache "D:\Develop\nvm\node_global"
执行成功就无任何响应,没有异常的话,就在去到 环境变量设置处。
设置环境变量
我的电脑右键 =》属性 =》高级系统设置 =》系统属性(高级)=》 环境变量,进入环境变量对话框。
如果环境变量未正确配置,输入node -v 会报错,系统将无法正确识别"node"命令。
需要我们设置的地方有两个:
1. 系统环境变量新增 NODE_PATH 变量
2. 用户变量修改 path 变量
-
在【系统变量】新建环境变量
NODE_PATH
值为D:\Develop\nvm\node_global\node_modules
,
其中D:\Develop\nvm\node_global\node_modules
就是上面创建的全局模块安装路径文件夹。 -
修改 【用户变量】中的 path 变量
这里我其实没有修改或者增加什么变量,是安装时候默认添加的。
-
另外下载完 nvm 之后,系统环境变量和用户环境变量会默认帮我们配置好
NVM_HOME
和NVM_SYMLINK
可以看到NVM_HOME
和NVM_SYMLINK
值和我们之前配置nvm中的setting.txt
文件配置的root
和path
值相吻合。
- 点击确定后配置完成。
八、测试安装全局模块
测试是否环境变量是否配置成功,在cmd窗口中输入以下指定全局安装express
模块,安装成功的话表示环境变量配置成功。
npm install -g express
安装cnpm
npm install -g cnpm
安装yarn
npm install -g yarn
nvm切换node版本 yarn 会无法使用(注意)
当你使用 nvm
(Node Version Manager)来切换 Node.js 的不同版本时,可能会遇到 yarn
无法正常使用的情况。这是因为 yarn
是一个全局安装的包管理器,并且它的运行依赖于全局 Node.js 的位置。当你通过 nvm
切换 Node.js 版本时,全局 Node.js 的路径会发生变化,这可能导致 yarn
不再能够正确地找到 Node.js 的可执行文件。
解决这个问题的方法有几种:
-
重新安装 yarn:
每次切换 Node.js 版本后,你可以尝试重新全局安装yarn
:npm install -g yarn
-
设置 yarn 的环境变量:
如果yarn
在切换 Node.js 版本后仍然不能正常工作,你可以尝试设置环境变量,确保yarn
能够找到正确的 Node.js 可执行文件。通常情况下,通过nvm
安装的 Node.js 会在~/.nvm/versions/node/<version>/bin
目录下创建一个node
的符号链接。你需要确保这个目录在你的PATH
环境变量中。 -
使用 nvm 的
alias
功能:
你可以为常用的 Node.js 版本设置别名,这样可以更方便地在它们之间切换。例如,给一个常用的长期支持(LTS)版本设置一个别名default
:nvm alias default <lts_version>
然后,当需要切换到其他版本时,你可以直接使用:
nvm use <other_version>
当你想回到默认版本时,只需输入:
nvm use default
-
检查
yarn
的安装路径:
有时候yarn
可能没有正确安装或者它的路径设置不正确。你可以通过检查yarn --version
命令输出的路径来确认yarn
是否正确安装在全局 Node.js 的环境中。
九、卸载nvm
-
先删除你当初所安装的nvm、nodejs的文件夹即可。
-
桌面右键 此电脑 – 点击属性 – 找到高级系统设置 – 环境变量。
-
删除用户变量 和 系统变量中名为 NVM_HOME 和 NVM_SYMLINK 两个变量。其他的不要改。
-
删除用户变量和系统变量中path中的 %NVM_HOME%,%NVM_SYMLINK% 两个属性,还有c盘中的node_cache,node_global,其他的不要改。
十、遇到的问题
- 在安装 nvm 之前没有卸载掉 node,导致 nvm 安装完之后,node和npm都不可用。所以我们在拿到一个新电脑时候最好是先下载nvm,再安装node版本。
- 在第一次使用nvm安装node后,记得使用
nvm use
切换下node版本,以及用nvm on
打开nodejs版本控制,不然这时候node
和npm
也都不可用。 - 使用 淘宝镜像
https://registry.npm.taobao.org
报错的问题,因为淘宝原镜像域名(registry.npm.taobao.org
)的 HTTPS 证书正式到期; npm 淘宝镜像已经切换到了registry.npmmirror.com
,使用命令行重新切换就可以了npm config set registry https://registry.npmmirror.com
,文章链接:技术资讯:技术资讯:npm 淘宝镜像正式到期,赶紧更新! - 出现报错 无法将“node.exe”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。(1.确保已经安装好nodejs 2. 环境变量配置成自己的路径,尝试修改路径配置) 这个也可参考评论区
- 想要知道node、npm安装位置可以使用命令行
where node
、where npm