前言
最近在折腾Python,并将node升级至v18.14.2。突然发现一个旧项目无法运行,也无法打包,里面的node-sass报错,显然这是因为node版本过高导致的。
将node版本降低至以前的v14.16.0,果然立马就能正常运行。
存在不同项目使用npm时所需要的版本不一致,又不想每次都卸载又重新安装node,建议使用nvm,一个专门的node多版本管理器,下次想更换不同的node操作很方便,下面是nvm安装已经使用。
nvm
nvm(node.js version management),是一个nodejs的版本管理工具。可以简单操作node版本的切换、安装、查看。。。
nvm和n都是node.js版本管理工具,为了解决node.js各种版本存在不兼容现象可以通过它可以安装和切换不同版本的node.js。
nvm下载安装
下载地址
解压之后是nvm.exe
,直接安装即可。
注意:我这里的默认地址,可以放在电脑其他不同的盘,放在默认位置就不需要环境配置。
nvm的使用
1. 查看vnm版本
检测是否安装成功 nvm-v
, 出现版本号则安装成功
2. 用vnm安装指定的node
以安装 v14.16.0 为例:
nvm install 14.16.0
但却发现无法找到npm:
bash: npm:command not found
进目录一看,居然是空的
确实没有npm
原因:
NVM将所有安装的Node.js的不同版本存放在这个目录下,当使用nvm use命令时,会将对应版本的Node.js目录中的内容拷贝到C:\Program Files\nodejs目录中,从而达到切换不同Node.js版本的目的。但是这个目录下的node_modules目录为什么是空的呢?
npm的仓库已经从https://github.com/npm/npm移到https://github.com/npm/cli了,但是NVM v1.1.7并没有做相应的调整,所以通过nvm install安装Node.js时对应的npm实际上并没有安装成功,不过NVM此时并没有报告任何错误,而是仍然显示已安装成功。
解决:
node官网下载相应版本node压缩包:https://nodejs.org/dist/v14.16.0
将压缩包中的内容直接解压志文件夹(C:\Users\Administrator\AppData\Roaming\nvm\v14.16.0
)中
这样就行了
3. 用vnm切换node
nvm use 14.16.0
现在查看下node版本
已经成功切换至 v14.16.0
再看看npm的版本:
现在我赶紧去看看旧项目还能不能跑起来,
不出意外,完美启动 ~ O(∩_∩)O
下次只要切换不同的node版本即可