前言
当接触的项目过多时就会发现,特喵的怎么每个项目的 node.js 版本都不一致?!
低版本 node 无法运行高版本项目,高版本 node 又不兼容低版本项目
如何快速的来回切换 node 版本成为了每一名前端同仁的必备技能
为解决此痛点,市面上出现了很多的 node 版本管理工具:nvm、nvs、Volta、fnm 等,这里我们使用 nvm 作教程讲解
1. 安装 nvm
注意:安装 nvm 之前,一定得先卸载干净 node.js!!!
注意:有了 nvm 就不需要单独安装 node 了,直接使用 nvm 安装切换 node 版本即可
windows 适用版本为 nvm-windows:github.com/coreybutler...
下载安装包(nvm-setup.exe)安装到本地(选择默认安装路径并且一直点击下一步即可),注意自定义路径注意不能有中文或者空格

提示!记住这里的安装目录,后面用得上!

2. node 安装与切换
输入命令 nvm v 能显示当前 nvm 版本号即说明安装成功
然后下载一个 node 版本
bash
nvm install 16
切换到 node 16
bash
nvm use 16
查看 nvm 中安装的 node 版本列表,以及当前所选择版本(星号)
bash
nvm list
然后就可以通过 node -v 和 npm -v 命令查询到当前的 node 和 npm 版本了
注意!npm 版本是跟随 node 版本变动的!

3. 设置淘宝源
由于国内网络等原因,使用 mpm install xxx 安装依赖包的过程中会出现安装过慢以及失败导致报错,所以我们把 npm 镜像源指向国内
淘宝 npm 镜像源
前面提醒的 nvm 安装目录还记得住吗?默认目录一般在这个位置"C:\Users\你的用户名\AppData\Local\nvm"

如果实在找不到了,就再重新安装一次吧
骗你的哈哈,可以 cmd 运行nvm root这个命令查看 nvm 的安装根路径在哪个文件夹
找到 nvm 安装目录下面的 settings.txt 文件

记事本打开 "settings.txt" 文件并在后面粘贴下面两句话即可
cmd
node_mirror: https://npmmirror.com/mirrors/node/
npm_mirror: https://npmmirror.com/mirrors/npm/

今后 nvm 安装的所有 node 版本都会指向淘宝镜像源了
检查当前 npm 镜像源
bash
npm config get registry
如果输出结果指向淘宝源 https://registry.npmmirror.com 即修改成功;以后运行 npm xxx 命令安装依赖包就是使用的淘宝 npm 镜像了;
4. nvm 常用操作命令
至此,nvm 已经安装成功,下面介绍常用命令
bash
nvm v // 显示nvm版本
nvm root // 查看nvm的安装根路径在哪个文件夹
nvm list // 显示已安装node的版本
nvm list available // 显示所有可以下载的node版本
nvm install 14.5.0 // 安装14.5.0版本node
nvm install latest // 安装最新版本node
nvm use 14.5.0 // 使用14.5.0版本node
nvm uninstall 14.5.0 // 卸载14.5.0版本node
5. 使用 yarn 替换 npm install
因为 npm 设计之初的一些历史遗留问题,使用 npm 进行依赖包的安装经常会出现莫名其妙的错误。建议大家使用 yarn 替换 npm i 进行包的安装
bash
npm install -g yarn // 全局安装yarn
yarn -v // 查看yarn版本
npm get registry // 查看当前yarn源
npm config set registry https://registry.npmmirror.com // 更改为淘宝yarn源
yarn install // 安装package.json里所有包
参考淘宝 npm 镜像站:npmmirror.com/
注意!yarn 是跟 node 版本进行绑定的!
6. nvm 常见报错
下面是我曾经遇到过的报错,大家如果碰到同样的问题可以作为参考
-
nvm 切换 node 报错
注意:使用 nvm use 14.5.0 命令切换 node 版本的时候报错"exit status 1: ��û��� 㹻 ��Ȩ��ִ�д",通过管理员身份打开
命令提示符后重新运行命令即可解决注意:如果出现乱码,可以打开 cmd 命令,运行
chcp 65001,然后将乱码的话复制按回车,即可翻译这句乱码的话的意思;甚至将乱码的话复制到 cmd 命令按回车就可以翻译;注意:如果运行 npm install 报错
npm ERR! cb() never called!,可以通过切换为原来的镜像源(不使用淘宝镜像)来解决bashnpm config set registry https://registry.npmjs.org/ -
nvm 切换 node 不起作用
问题:nvm 切换 node 版本成功(Currently using 64-bit executable),但是 node -v 却提示(Currently using 32-bit executable),等于说 node 一直停留在之前版本,并没有切换成功;
解决办法:1.卸载干净 node.js; 2.重新使用 nvm use 指定 node 版本;
复盘发现问题出现的原因是:node.js 不小心安装成了 32(84)位
-
vscode 运行 yarn 报错
在 cmd 里可以正常运行 yarn 命令,但是在 vscode 中运行报如下错误:
yarn : 无法加载文件 C:\nvm4w\nodejs\yarn.ps1,因为在此系统上禁止运行脚本。解决方案:
以管理员身份运行 PowerShell。输入
set-ExecutionPolicy RemoteSigned;然后选择 A。然后回到 vscode 运行
yarn -v即可正确显示 yarn 版本号 -
vscode 运行 yarn 又报错
报错如下:
yarn : 无法将"yarn"项识别为 cmdlet、函数、脚本文件或可运行程序的名称。解决方案:
经过排查,是因为在 node 版本为 19 的时候安装了 yarn,但是我又通过 nvm 将 node 版本切换到了 21,运行
yarn -v命令发现 yarn 竟然未安装?原来 yarn 竟然是跟 node 绑定的?所以我用 nvm 切换 node 为 21 版本的时候,运行命令
npm install -g yarn重新安装 yarn,然后运行yarn -v命令查看 yarn 版本,正确显示 yarn 版本,表示已经成功安装