【NodeJS】- 使用NVM安装npm失败后,手动安装npm

安装NVM之后,我们通常会配置镜像,在setting文件中,添加镜像路径

node_mirror: https://npm.taobao.org/mirrors/node
npm_mirror: https://npm.taobao.org/mirrors/npm

但是这两天镜像突然炸了,于是我删掉了镜像地址,使用官方直接下载。

但是npm下载非常困难,而且高版本的npm还存在workspaces文件引入失败问题,需要手动拷贝文件,削微有点麻烦,所以记录一下折腾的过程。

1、首先我们选择一个node的版本进行下载,如图所示,下载20.1.0版本的node成功了,但是对应的9.6.4版本的npm下载失败了

 

 

 2、我们打开npm下载的网页(https://registry.npmmirror.com/binary.html?path=npm/),找到对应的npm包进行下载

 

3、找到NVM安装目录,将下载的npm包拷贝到对应的目录中,并解压,然后将解压出来的文件名,改为 npm

 

 

4、我使用7z解压的时候,会出现没有权限的问题,如下图所示,用管理员运行7z软件,然后解压就行了

 

 5、在【开始】栏,右击7-zip软件,然后点【以管理员身份运行】

 

 6、然后在解压软件中将npm包解压出来,再强调一遍,记得将解压出来的文件【cli-9.6.4】改名成【npm】

 

 

 7、然后进到npm文件夹下的bin文件夹中,将里面的四个文件拷贝出来,如图所示

 

 拷贝到如图位置

 

8、此时我们使用nvm切换到20.1.0版本的node,查看npm版本的时候,会出现错误

 

 

 有些版本查看版本时不会出错,但是在下载时,会报错:

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

问题都是类似的,就是npm的node_modules中的有些库不完整,我们进到node_modules文件夹中拉到最下面,就会看见,很多库都是通过 ../workspaces/libnpmaccess 的形式引入的,但是在Windows环境下, 这个链接是不管用的,所以我们需要手动引入这些文件。

但是值得注意的是,除了node_modules文件夹下有这些链接,node_modules/@npmcli下也有,如图所以,我们要对照一下这些文件的位置,千万不要弄错了

 

 9、找到 workspaces 中的对应文件,拷贝到对应的文件夹下,不同版本的文件有些不同,有些没有config文件,arborist和config拷贝到 node_modules/@npmcli,其他的拷贝到 node_modules 下,记得拷贝前,将链接先删掉

 

10、此时我们再查看npm的版本,已经没问题了,下载yarn也没问题

 

posted @ 2024-01-30 14:45  迷你胡丶  阅读(484)  评论(0编辑  收藏  举报