本人是刚学Java三个月的入门小白,在学习前端工程化时在windows上配置了node和npm的环境变量,当时跟着视频做项目时直接下载了nodejs的安装包,在配置完系统环境变量并下载好npm后,启动项目可以正常运行,但当我最近几天做另一个项目准备安装npm时却意外的出现如下报错:
根据在网上查询的结果,报错的原因可能是使用的node版本较高导致的依赖出错,所以我尝试降低node版本使其能正常安装npm
我了解到要改node版本需要安装nvm,什么是nvm呢?
nvm 全名 node.js version management,是一个 nodejs 的版本管理工具。通过它可以安装和切换不同版本的 nodejs,主要解决 node 各种版本存在不兼容现象。有时我们可能同时在进行2个或者多个不同的项目开发,每个项目的需求不同,进而不同项目必须依赖不同版本的 NodeJS 运行环境,这种情况下,对于维护多个版本的 node 将会是一件非常麻烦的事情。nvm 就是为解决这个问题而产生的,他可以方便的在同一台设备上进行多个node版本之间切换。
之后我就从github官网上找到了nvm的资源,附链接:
https://github.com/coreybutler/nvm-windows/releases
我直接下载了最新版nvm,在配置好资源后安装了node版本12.22.12
然后我尝试切换版本,神奇的一幕出现了:
(这个找的网图,原来的图忘保存了)
node版本换不过来,即使出现了now using node...
---------------------------------------------------------------------------------------------------------------------------------
又在找资料才发现原来是这样:
最后我卸载了之前下载的node安装包,清除了环境变量,重新配置了一通
结果又报错了。。。:
npm WARN EBADENGINE Unsupported engine {
npm WARN EBADENGINE package: ‘[email protected]’,
npm WARN EBADENGINE required: { node: ‘>= 14.17.5’ },
npm WARN EBADENGINE current: { node: ‘v12.22.12’, npm: ‘8.5.1’ }
npm WARN EBADENGINE }
可见npm与node的版本也对应不上,所以一定要卸载干净之前的node和npm啊啊啊
最终我删光了之前下载的有关nodejs的所有文件,清除了所有环境配置,然后从头开始安装nvm
->nodejs->npm
在path配置好变量后
版本可正常切换:
综上:
一、之前没有安装过nodejs
直接在github官网按教程下载配置即可:
安装包链接:
https://github.com/coreybutler/nvm-windows/releases/download/1.1.9/nvm-setup.zip
1、注意:
要选择安装版:下载地址中,nvm-noinstall.zip 是免安装版,nvm-setup.zip 是安装版。安装版可以自动设置环境变量。
安装 nvm 路径最好不要出现中文和空格
2、镜像加速
下载后按照默认配置一步步安装,由于国外的镜像源下载慢,所以可以打开 nvm 的安装位置,打开 nvmsettings.txt 添加:
nvm npm_mirror https://npm.taobao.org/mirrors/npm/
二、之前安装过nodejs
先卸载所有有关安装包(建议直接在控制面板找到对应文件夹强制删除)
再在github官网上重新一步步下载安装配置