Node版本管理器:NVM的使用以及安装问题 Jan 16 2025 教程 0 comment ### 前言 前端开发过程经常遇到多个项目不兼容特定Node.js和npm版本的问题,频繁地卸载和重新安装适合版本显然是笨拙的解决方案。NVM(Node Version Manager)提供便捷切换Node版本及npm版本的解决方案。 ### 安装nvm 访问[nvm github](https://github.com/coreybutler/nvm-windows/releases)地址,选择适合你的版本(推荐最新安装版)。执行安装程序,默认安装目录或自定义目录(请记住,后续需要使用)。 安装完成后。使用`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地址页](https://registry.npmmirror.com/binary.html?path=npm/),找到对应npn版本下载ZIP,如:我安装的Node是v23.10.0,匹配的npm版本是v10.9.2  定位到nvm本机安装目录,如下图(假如你的nvm是最新版),旧版路径不同,但操作相同。  依次打开对应版本文件夹-> 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版本以及测试安装依赖,可正常使用。  本文由 yuin 创作,本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。