全网最细!使用nvm管理node(从node卸载到node安装使用一文搞定)nrm管理npm源
一、认识NVM
在我们的日常开发中经常会遇到这种情况:手上有好几个项目,每个项目的需求不同,进而不同项目必须依赖不同版的 NodeJS 运行环境。如果没有一个合适的工具,这个问题将非常棘手。
nvm 应运而生,NVM (Node Version Manager) 是一个用于管理多个 Node.js 版本的工具。nvm和n都是node.js版本管理工具,为了解决node.js各种版本存在不兼容现象可以通过它可以安装和切换不同版本的node.js。这对于开发人员来说非常有用,尤其是在需要支持不同版本 Node.js 的场景下。
nvm 与 n 的区别
node 版本管理工具还有一个是 TJ大神的 n 命令,n 命令是作为一个 node 的模块而存在,而 nvm 是一个独立于 node/npm 的外部 shell 脚本,因此 n 命令相比 nvm 更加局限。
由于 npm 安装的模块路径均为 /usr/local/lib/node_modules,当使用 n 切换不同的 node 版本时,实际上会共用全局的 node/npm 目录。 因此不能很好的满足『按不同 node 版本使用不同全局 node 模块』的需求。
二、安装NVM
1、卸载全局安装的 node/npm(无node可跳过此步)
在官网下载的 node 安装包,运行后会自动安装在全局目录,使用过程中经常会遇到一些权限问题,所以推荐按照以下方法卸载全局安装的 node/npm。
在最新的安装程序中,已经自带了卸载程序,当然也可以手动卸载。
(1)在控制面板中卸载 nodejs;
(2)删除node的安装目录,一般来说卸载后就已经删除掉了;
(3)删除C盘中遗留的文件
在C盘查找以下文件夹,如果存在,请逐个删除
C:\Program Files (x86)\Nodejs
C:\Program Files\Nodejs
C:\Users\用户名\AppData\Roaming\npm
C:\Users\用户名\AppData\Roaming\npm-cache
C:\Users\用户名\AppData\Local\npm-cache
(4)如果有配置过环境变量的话,将node的环境变量删除;
(5)检测版本
npm -v
node -v
出现无法识别这两个命令后,node的环境就是删除干净了。随后一定要重启电脑,再进行下一步的安装操作!
2、安装nvm
(1)下载安装包
nvm的发布是在github的一个开源仓库里面,因此需要去github上下载(官方地址)。
但是对于部分因为网络原因,上不去的小伙伴,这里提供了一个国内能够访问的镜像网址,不过这个网站的nvm版本可能不是最新的,如果对版本有要求的话,还是推荐去github上下载。链接地址
(2)安装
双击nvm-setup.exe进入nvm的安装流程。
切记安装路径的文件夹不要出现中午,不然使用npm的审核会出现符号格式不正确问题。
直接安装到C盘的话,就不需要再配置环境变量了,如果你选择了其他的盘,那还需要配置环境变量。
静静等待安装成功,然后win+R打卡命令提示符窗口,然后输入nvm -v
来查看安装好的nvm版本。
nvm -v
出现版本说明已经将nvm安装成功了。
3、配置nvm下载镜像
安装成功nvm后先别急着安装node,因为node是国外的链接,下载会比较慢,因此我们需要设置一下国内的镜像地址,加快下载的速度。
(1)打开刚刚安装nvm的地址,找到settings.txt
。
(2)打开该文件,在最下面添加如下两行代码:
node_mirror: https://npmmirror.com/mirrors/node/
npm_mirror: https://npmmirror.com/mirrors/npm/
4、配置环境变量
如果上面安装的时候路径都选择的是C盘,那么大概率这一步是可以跳过的,不过最好还是检查一下,有时候也可能出现没有的情况。
右键桌面上的此电脑,打开属性。在系统->系统信息中找到高级系统设置,这样就能找到环境变量了。
打开后查看一下是否存在如下图所示的两个环境变量,如果没有的话需要加上这两个环境变量,注意变量名不要打错了。
然后在path中添加这两个环境变量,最好用户和系统这两个path都加上
5、常用的nvm命令
# 查看 nvm 版本:
nvm -v
# 打开nodejs版本控制
nvm on
# 关闭nodejs版本控制
nvm off
# 查看可下载的 nodejs 版本:
nvm list available
# 下载指定版本的 nodejs:
nvm install [nodejs版本号] # 如 nvm install 16.20.0
# 卸载指定版本的 nodejs:
nvm uninstall [nodejs版本号] # 如 nvm uninstall 16.20.0
# 查看系统上已安装的 nodejs 版本:
nvm ls
# 切换目前使用的 nodejs 版本:
nvm use [nodejs版本号] # 如 nvm use 16.20.0
# 切换到最新版:
nvm use node
# 直接运行特定版本的 Node
nvm run [nodejs版本号] --version # 如 nvm run 16.20.0 --version
# 想了解更多指令可通过 nvm help 指令查看
6、卸载nvm
如果不需要nvm了如何卸载呢?
(1)直接打开控制面板,点击卸载软件,找到nvm直接卸载就行,通过nvm下载的node会跟随nvm一起卸载。
(2)还是打开环境变量,将之前设置的环境变量删掉就行了。
三、安装node
1、安装node
win+R打开终端,输入nvm list available
,查看当前网络能够下载的所有node的版本,其中CURRENT
是比较新的版本,可能不稳定,LTS
是稳定版本,推荐下载LTS中的稳定版本。
nvm list available
这里面的版本不全,如果需要查看所有的版本,需要去https://nodejs.org/en/download/releases查看所有的版本。
选择一个开发时需要的版本,比如我需要安装的版本是16.20.0,那么我直接输入nvm install 16.20.0
,然后回车执行命令。
nvm install 16.20.0
如果下载错了,需要卸载node,使用命令:nvm uninstall [node版本号]
出现这句话就代表这个版本的node安装成功了,这个时候如果你去nvm的安装目录里面 查看,你可以看到对应两个版本的node文件夹。这里你可以多安装几个版本,推荐装一个比较新的和一个比较稳定的版本。
2、使用node
在命令行中输入nvm ls
可以查看当前系统中有的node版本。
nvm ls
出现 *
标代表这个版本是现在正在使用的版本。
当然如果是刚安装上,如果没有这个*
标也没事,在命令行中输入nvm use [nodejs版本号]
就能进行node版本的使用。
比如我希望切换到16.20.0
这个版本,那么我就需要输入nvm use 16.20.0
进行版本的使用,需要切换版本时也是使用该命令,然后使用nvm on
打开nodejs版本控制。
nvm use 16.20.0
nvm on
切换后记得查看一下当然使用的node和npm是否正常。
依次输入node -v
和npm -v
,查看node和npm的版本。
node -v
npm -v
能够正常出现两个版本就说明已经安装配置好了。
注意事项:
如果npm -v出现npm非内部指令或外部指令的情况,说明npm对应的文件没有下载。
解决办法:
失败的原因很简单。如果正常的自动安装,node文件夹里应该如下图,而安装失败,文件夹里并没有npm和npm.cmd两个文件。
因此我们需要手动安装node版本对应的npm版本,可以去这个链接进行查看:https://nodejs.org/zh-cn/download/releases/
如下图:
比如我的Node版本是12.22.12,那么我就直接下载6.14.16的版本就行了。可以直接点后面的Release
进行下载,也可以去这个网站查找对应的版本进行下载。
https://registry.npmmirror.com/binary.html?path=npm/
下载解压好以后,把整个解压出来的文件夹重命名为npm
,然后将这个文件夹放到node
目录下的node_modules
目录下。
然后去解压出来的npm
文件夹的bin目录下,找到npm
和npm.cmd
这两个文件
把这两个文件放到node版本的文件夹下,如图:
然后再执行npm -v这个命令,就能出现版本了,这样npm就可以正常使用了。
3、配置淘宝镜像
为了让npm下载包的速度更快,可以为npm设置一个淘宝镜像。
npm config set registry https://registry.npmmirror.com
如果出现如下图的错误的话,说明配置的淘宝镜像过期了,可以参考这一篇文章进行修改。直达链接
4、nrm管理镜像源(非必须)
这一步只是作为拓展,不是必须的,如果只是想通过nvm管理node的小伙伴这一步直接跳过,npm配置了淘宝镜像后就可以了。
nrm(npm registry manager)是npm的镜像管理工具,有时候国外的资源太慢,使用这个就可以快速地在npm源间切换。
(1)安装:
命令行执行命令,npm install -g nrm
,全局安装nrm
npm install -g nrm
(2)查看源:
执行命令nrm ls
查看可选的源。其中带*
号的是当前使用的源,或者使用nrm current
可以直接查看当前使用的源。
nrm ls
nrm current
(3)切换源
将当前的 npm 源切换为指定的源。可以使用源的名称或 URL 作为 参数。
nrm use <registry>
# 比如需要切换为taobao,那么命令为:nrm use taobao
(4)添加源:
你可以增加定制的源,特别适用于添加企业内部的私有源,执行命令nrm add <registry> <url>
,其中registry为源名,url为源的路径。
nrm add <registry> <url>
#比如你要添加一个叫gege的源,链接是https://gege.com
#那么命令为:nrm add gege https://gege.com
(5)删除源:
执行命令nrm del <registry>
删除对应的源。
nrm del <registry>
# 比如要删除gege这个源,那么执行nrm del gege
(6)测试源速度:
测试指定源的响应速度,并显示测试结果。
nrm test <registry>
# 比如测试taobao的速度 nrm test taobao
5、常用的npm命令
# 初始化一个新的 npm 项目。生成一个 package.json 文件,用于描述项目的元数据。
npm init
# 安装一个 npm 包。
npm install <package> 或 npm i <package> # 比如 npm install express
# 卸载一个 npm 包。
npm uninstall <package> # 比如 npm uninstall express
# 列出当前项目中安装的所有包。
npm list 或 npm ls
# 显示当前项目中已安装包的最新版本。
npm outdated
# 更新一个包到最新版本。
npm update <package> # 比如 npm update express
# 更新所有已安装的包到最新版本。
npm update
# 运行 package.json 中定义的一个脚本。
npm run <script> # 比如 npm run start
# 运行测试脚本,通常在 package.json 中定义。
npm test
# 发布当前项目到 npm 仓库。
npm publish
# 查看和设置 npm 的配置。
npm config # 比如 npm config get prefix
# 显示 npm 的帮助信息。
npm help
6、常用的一些标识符
# 全局安装一个包。
-g 或 --global # 比如 npm install --global express 或 npm install -g express
# 装包并将其添加到 dependencies。
-S 或 --save # 比如 npm install -S express 或 npm install --save express
# 安装包并将其添加到 devDependencies。
-D 或 --save-dev # 比如 npm install -D nodemon 或 npm install --save-dev nodemon
# 安装包并指定确切的版本。
-E 或 --save-exact # 比如 npm install -E express 或 npm install --save-exact express
# 安装包并将其添加到 optionalDependencies
--save-optional 或 -O # 比如 npm install --save-optional express 或 npm install -O express
# 指定安装目录
--prefix # 比如 npm install --prefix /path/to/project express
# 只安装 dependencies,忽略 devDependencies。
--production # 比如 npm install --production
恭喜你!到此为止,node的安装和管理你已经很熟悉了,后续npm还有yarn、cnpm、pnpm等内容,如果感兴趣的话,可以参考这一篇文章,传送门
如果觉得这篇文件对你有帮助的话,麻烦点个赞和关注吧!!!谢谢!!!