【工具篇】使用 nvm 进行 node 版本管理

前言

当接触的项目过多时就会发现,特喵的怎么每个项目的 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 -vnpm -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!,可以通过切换为原来的镜像源(不使用淘宝镜像)来解决

    bash 复制代码
    npm 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 版本,表示已经成功安装

相关推荐
J总裁的小芒果2 小时前
后端返回参数不一致 前端手动处理key
前端·vue.js·elementui
指尖跳动的光2 小时前
web网页如何禁止别人移除水印
前端·javascript·css
chenbin___2 小时前
JavaScript 中!!、?? 和 || 使用介绍
前端·javascript·vue.js
chilavert3182 小时前
技术演进中的开发沉思-279 AJax :Rich Text Editor(下)
前端·javascript·ajax
玄同7652 小时前
面向对象编程 vs 其他编程范式:LLM 开发该选哪种?
大数据·开发语言·前端·人工智能·python·自然语言处理·知识图谱
天呐草莓2 小时前
部署 Vue 项目到阿里云云服务器
服务器·前端·vue.js
27669582922 小时前
京东最新滑块 分析
linux·前端·javascript·h5st·京东滑块·京东m端滑块·京东逆向
加洛斯2 小时前
Pinia入门指南:三步上手,搞定状态管理
前端·vue.js