Node版本管理器:NVM的使用以及安装问题
   教程    0 comment
Node版本管理器:NVM的使用以及安装问题
   教程    0 comment

前言

前端开发过程经常遇到多个项目不兼容特定Node.js和npm版本的问题,频繁地卸载和重新安装适合版本显然是笨拙的解决方案。NVM(Node Version Manager)提供便捷切换Node版本及npm版本的解决方案。

安装nvm

访问nvm github地址,选择适合你的版本(推荐最新安装版)。执行安装程序,默认安装目录或自定义目录(请记住,后续需要使用)。

安装完成后。使用win + R输入cmd打开管理员终端,键入nvm -v检测安装是否顺利。倘若顺利继续使用nvm ls命令查看本机安装的Node版本。

注意
如过本机已存在Node和npm,安装时会提示“nvm 接管node的控制权”,点击是即可。有时nvm并不能顺利接管node,这种情况建议卸载原有Node,使用nvm重新安装相应的版本。

使用nvm安装Node及npm

使用nvm ls available命令查看可用的Node版本。

|   CURRENT    |     LTS      |  OLD STABLE  | OLD UNSTABLE |
|--------------|--------------|--------------|--------------|
|    24.0.1    |   22.15.0    |   0.12.18    |   0.11.16    |
|    24.0.0    |   22.14.0    |   0.12.17    |   0.11.15    |
|   23.11.0    |   22.13.1    |   0.12.16    |   0.11.14    |
|   23.10.0    |   22.13.0    |   0.12.15    |   0.11.13    |
|    23.9.0    |   22.12.0    |   0.12.14    |   0.11.12    |
|    23.8.0    |   22.11.0    |   0.12.13    |   0.11.11    |
|    23.7.0    |   20.19.1    |   0.12.12    |   0.11.10    |
|    23.6.1    |   20.19.0    |   0.12.11    |    0.11.9    |
|    23.6.0    |   20.18.3    |   0.12.10    |    0.11.8    |
|    23.5.0    |   20.18.2    |    0.12.9    |    0.11.7    |
|    23.4.0    |   20.18.1    |    0.12.8    |    0.11.6    |
|    23.3.0    |   20.18.0    |    0.12.7    |    0.11.5    |
|    23.2.0    |   20.17.0    |    0.12.6    |    0.11.4    |
|    23.1.0    |   20.16.0    |    0.12.5    |    0.11.3    |
|    23.0.0    |   20.15.1    |    0.12.4    |    0.11.2    |
|   22.10.0    |   20.15.0    |    0.12.3    |    0.11.1    |
|    22.9.0    |   20.14.0    |    0.12.2    |    0.11.0    |
|    22.8.0    |   20.13.1    |    0.12.1    |    0.9.12    |
|    22.7.0    |   20.13.0    |    0.12.0    |    0.9.11    |
|    22.6.0    |   20.12.2    |   0.10.48    |    0.9.10    |

控制台打印的版本列表并不完整,如需更旧版本,可以使用已知正确的版本号安装。如nvm install 16.20.2

安装指定版本node和npm

1.假如你有“魔法梯子”,那么你大概率像我一样,只需简单的命令就能安装指定版本的node和npm。

nvm install 16.20.2
...
nvm install 23.10.0
...

nvm ls
    23.10.0
  * 16.20.2 (Currently using 64-bit executable)
  
 // *表示当前使用的版本
 
 //切换版本
 nvm use version 
 
  //删除版本
 nvm uninstall version 
 

2.比较糟糕的一种情况是:nvm下载指定版本的Node所对应的npm时,常常会出现错误。解决方案是手动安装。

前往npm release地址页,找到对应npn版本下载ZIP,如:我安装的Node是v23.10.0,匹配的npm版本是v10.9.2

npm

定位到nvm本机安装目录,如下图(假如你的nvm是最新版),旧版路径不同,但操作相同。

屏幕截图 2025-05-13 145652

依次打开对应版本文件夹-> node_modules,把下载的npm压缩包解压至此,并修改文件夹名为npm

最新版本一般情况下完成以上步骤,再使用npm -v就能识别npm,npm i 安装依赖也正常。
但旧版本nvm实际使用可能缺少相关@cli里的内容, 查看版本时不会出错,但是在下载时,会报错:

npm ERR! code MODULE_NOT_FOUND``
npm ERR! Cannot find module ``'libnpmfund'``
npm ERR! Require stack:``
npm ERR! - C:\Users\LENOVO\AppData\Roaming\nvm\v16.20.1\node_modules\npm\lib\utils\reify-output.js``
npm ERR! - C:\Users\LENOVO\AppData\Roaming\nvm\v16.20.1\node_modules\npm\lib\utils\reify-finish.js``
npm ERR! - C:\Users\LENOVO\AppData\Roaming\nvm\v16.20.1\node_modules\npm\lib\commands\install.js``
npm ERR! - C:\Users\LENOVO\AppData\Roaming\nvm\v16.20.1\node_modules\npm\lib\npm.js``
npm ERR! - C:\Users\LENOVO\AppData\Roaming\nvm\v16.20.1\node_modules\npm\lib\cli.js``
npm ERR! - C:\Users\LENOVO\AppData\Roaming\nvm\v16.20.1\node_modules\npm\bin\npm-cli.js 
npm ERR! A complete log of ``this run can be found ``in``:``
npm ERR!     C:\Users\LENOVO\AppData\Local\npm-cache_logs\2024-01-30T05_06_13_698Z-debug-0.log

找到 workspaces 中的对应文件,拷贝到对应的文件夹下,不同版本的文件有些不同,有些没有config文件,arborist和config拷贝到 node_modules/@npmcli,其他的拷贝到 node_modules下。

完成以上步骤后,再检查npm版本以及测试安装依赖,可正常使用。

image-20250514093044650

Responses