终端运行npm install提示cb.apply is not a function错误如何解决
问题复现场景
在PowerShell终端进入前端项目路径C:\Users\JOEKINZ\Desktop\theaccrahandyman\budgettracker\frontend后执行npm install命令,抛出如下错误:
npm ERR! cb.apply is not a function
完整运行日志存储路径:C:\Users\JOEKINZ\AppData\Roaming\npm-cache\_logs\2022-06-29T09_51_40_878Z-debug.log
错误核心诱因
- npm与Node.js版本不兼容:该错误90%以上的触发场景为旧版本npm内置的
graceful-fs依赖版本过低,和当前安装的高版本Node.js运行API不匹配,导致安装流程中的回调函数调用失败 - 本地npm缓存损坏:缓存目录中存在下载不完整、文件结构异常的包资源,读取时触发回调异常
- 项目本地残留依赖冲突:项目目录下残留的历史
node_modules文件夹、锁文件和当前要安装的依赖版本存在冲突 - Windows目录权限异常:当前用户对npm缓存目录、项目目录没有足够的读写权限,文件操作失败后未正常触发错误回调
按优先级尝试的修复方案
- 强制清理npm损坏缓存
执行以下命令清理全量缓存:npm cache clean --force
如果命令执行后仍报错,直接手动删除整个缓存目录C:\Users\JOEKINZ\AppData\Roaming\npm-cache即可。 - 重装匹配版本的npm
首先执行node -v和npm -v确认当前版本,若npm版本低于6.x且Node版本高于14.x,直接执行以下命令强制重装最新稳定版npm:npm install -g npm@latest --force
安装完成后关闭当前PowerShell窗口重新打开,再进入项目目录重试安装。如果使用nvm-windows管理多版本Node,直接切换到Node.js LTS长期支持版本,自带的npm版本和Node完全匹配,不会出现兼容问题。 - 清理项目本地残留依赖
进入前端项目目录后,执行以下PowerShell命令删除残留的依赖文件夹和旧锁文件:
删除完成后重新执行Remove-Item -Recurse -Force node_modules -ErrorAction SilentlyContinue Remove-Item -Force package-lock.json -ErrorAction SilentlyContinuenpm install即可。 - 修复目录权限
右键点击npm缓存目录、项目所在文件夹,选择「属性-安全」,给当前登录的Windows用户分配完全控制权限,避免权限不足导致的文件操作异常。
内容的提问来源于stack exchange,提问作者Asmah Sings
相关产品推荐
相关产品推荐

