本文记录在Windows 10环境下使用nvm管理Node.js多版本时,安装较新版本(如10.9.0)导致npm无法自动安装的故障。通过对比低版本6.9.0的文件结构,提出将旧版npm文件迁移至新版目录的手动修复方案,并验证了全局依赖安装的有效性。
nvm安装新版Node.js时npm缺失的解决方案
Windows10
当前测试环境为Windows 10系统。
环境配置与故障现象
本机尚未预装Node.js,但已安装nvm工具。尝试使用nvm安装开发环境所需的Node.js版本(10.9.0或更高版本)。

根据上述截图显示,npm似乎下载失败,需要手动干预安装。我们首先使用命令检查Node.js的安装状态。
nvm use 10.9.0
v10.9.0Node.js本身安装正常,但在尝试安装独立的npm包时出现问题。注意,原npm官网已迁移至https://npm.community/。
然而该网址访问困难,因此接下来尝试安装一个较低版本的Node.js进行对比测试。
nvm install 6.9.0低版本对比与手动修复方案
此次安装提示“everything completed!”(全部完成)。随后进行测试验证。
nvm use 6.9.0
v6.9.0
npm -v
3.10.8
浏览6.9.0版本Node.js的文件目录结构。

在node_modules目录下存在一个npm文件夹,打开即可看到npm的所有文件系统。由此萌生两种解决方案:方案1:访问https://github.com/npm/cli。
下载其中的文件,打包解压后放入新版10.9.0的文件夹中;
方案2:手动安装新版Node.js,并将下载的npm相关资源复制移动到10.9.0目录下;
下载压缩包并解压,查看文件结构后将其正确放入文件夹。将6.9.0版本下的npm文件夹及npm.cmd(打开后内部代码应为通用配置,可直接复制使用)复制到10.9.0文件夹下,然后进行测试。
node -v
v10.9.0
npm -v
6.10.2(因为最新版的,并不是6.2.0,因为提供的网址打不开,不然应该找对应版本的npm)尝试安装全局依赖:
npm install @angular/cli -g
npm install @tarojs/cli -g方案评估与多版本管理建议
此时可以正常工作。至此必须采用方案2进行测试,因为多版本Node.js环境不可能仅包含两个版本。方案1在GitHub上只能获取较新的npm,遇到大版本之前的旧版时,只能从Node.js官网下载安装包并移除原有的npm包。由此看来,nvm在此场景下并不好用,失去了工具应具备的灵活性和简单性特点。
新的需求需要8.x版本的Node.js,
nvm install 8.16.0
采用方案2解决: https://nodejs.org/dist/latest-v8.x/ 下载zip包,解压,直接上图,看清楚路径,然后替换全部


结论与替代工具建议
结论:在Windows 10系统下(经询问其他使用Windows 7系统的朋友,无npm安装不了的问题),nvm在部分新版Node.js安装时,npm因未知原因无法自动安装,需要个人手动安装npm。根据提示得到的解决方案即文中所提供的截图;
另外很久以前就有人质疑过在Windows上使用nvm效果不是很好,建议使用nvs,本人下一篇的文章会进行介绍和使用(ps:每次折腾这类问题我都卸载本机安装好的环境,够意思了😄)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。