场景:npm install 报错
npm ERR! cb() never called!
npm ERR! This is an error with npm itself. Please report this error at:
npm ERR! <https://npm.community>
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\zhaoh\AppData\Roaming\npm-cache\_logs\2024-07-25T10_00_52_687Z-debug.log
总结一下,出现这个错误主要有两种原因
1.npm缓存问题、2.node.js版本问题。
1、npm缓存问题解决
第一步:删除项目的node_modeles、删除package-lock.json。如果有重要的赖最好先备份一下。
第二步:执行清除缓存的命令
npm cache clean --force
再执行npm install看看问题是否解决。
2、node.js版本问题
不管是vue还是react项目,都容易出现和node.js版本不兼容的问题,一般是因为环境中node.js版本高于项目所需的版本,这就需要降低的环境中的node.js版本.
简单粗暴的办法就是卸载已经安装的node.js版本,安装新的node版本,但是这种方法过于太死板,每次需要不同的版本都得卸载后重新安装。
最好的办法就是是安装一个npm版本管理工具 nvm,通过nvm切换。
nvm(Node Version Manager)是Node.js的版本管理器,可以让我们轻松地在不同的Node.js版本之间进行切换。
2.1 安装nvm
以window举例
2.1.1卸载已安装的node.js
安装之前最好先卸载已经安装好的node,避免出现不必要的麻烦,控制面板》程序 找到node.js点击卸载。
2.1.2 下载nvm安装包
官网下载地址:Releases · coreybutler/nvm-windows
下载后直接点点点一步一步安装就行,最好记录一下安装目录。
安装完成后,使用命令 nvm -v 查看版本,能正常显示说明安装成功。
2.1.3 nvm配置国内镜像(增加node.js的下载速度)
在 nvm 的安装路径下,找到 settings.txt,设置node_mirro与npm_mirror为国内镜像地址。
如果使用的默认安装路径,可能找不到安装路径在哪,可以从环境变量里面找,例如:
settings.txt内容
root: C:\Users\zhaoh\AppData\Roaming\nvm
path: C:\Program Files\nodejs
npm_mirror https://npmmirror.com/mirrors/npm/
node_mirror https://npmmirror.com/mirrors/node/
2.2 通过vnm安装node.js
2.2.1查看可安装列表
nvm list available
这里只列出了部分node.js的版本,更多版本可进入官网查看:Node.js — Node.js Releases
2.2.2 安装node.js
nvm install 版本号
安装成功后,通过命令 nvm list 查看已经安装的版本列表
切换版本
nvm use 版本号
然后 node -v查看当前node.js版本
2.2.3 nvm常用命令说明
nvm命令提示
nvm arch:显示node是运行在32位还是64位。
nvm install <version> [arch] :安装node, version是特定版本也可以是最新稳定版本latest。可选参数arch指定安装32位还是64位版本,默认是系统位数。可以添加--insecure绕过远程服务器的SSL。
nvm list [available] :显示已安装的列表。可选参数available,显示可安装的所有版本。list可简化为ls。
nvm on :开启node.js版本管理。
nvm off :关闭node.js版本管理。
nvm proxy [url] :设置下载代理。不加可选参数url,显示当前代理。将url设置为none则移除代理。
nvm node_mirror [url] :设置node镜像。默认是https://nodejs.org/dist/。如果不写url,则使用默认url。设置后可至安装目录settings.txt文件查看,也可直接在该文件操作。
nvm npm_mirror [url] :设置npm镜像。https://github.com/npm/cli/archive/。如果不写url,则使用默认url。设置后可至安装目录settings.txt文件查看,也可直接在该文件操作。
nvm uninstall <version> :卸载指定版本node。
nvm use [version] [arch] :使用制定版本node。可指定32/64位。
nvm root [path] :设置存储不同版本node的目录。如果未设置,默认使用当前目录。
nvm version :显示nvm版本。version可简化为v。
完成。