1. 报错信息

2. 报错代码
kotlin
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\Rattenking\AppData\Roaming\npm-cache\_logs\2024-10-25T01_47_25_855Z-debug.log
3. 问题原因
这个问题,是因为npm程序执行到未知流程节点中然后没有调用回调通知任务已执行完成,导致进程异常退出,据官方说法他们也没有太好的方式解决,建议直接升级npm版本!
4. 解决方案一
- 删除: node_modules 文件夹
- 删除: package-lock.json 文件
- 清楚npm缓存: npm cache clean --force
- 再执行: npm install
记录了,说明解决了这个作者当时的问题,但是我是用这种办法,并没有解决,依然报错!
5. 解决方案二
- 删除代理
arduino
npm config rm proxy
npm config rm https-proxy
可能问题不一样,删除代理再次执行,依然报错,还是没有解决我的问题,苦恼!
6. 解决方案三
- 切换镜像
arduino
//查看源
npm config get registry
//更换源
npm config set registry https://registry.npmjs.org
//淘宝镜像
npm config set registry https://registry.npmmirror.com
目前还是没有解决我的问题,崩溃了,快!
7. 解决方案四
- 查看 scripts 配置的 npm 的命令,最少我的项目里边没有配置,目前没有发现这个问题,所以还是没解决!
json
"i": "pnpm install"
8. 解决方案五
8.1 解决步骤
- 删除: node_modules 文件夹
- 删除: package-lock.json 文件
- 清楚npm缓存: npm cache clean --force
- 更新npm: npm install -g npm@latest
- 设置镜像:npm config set registry registry.npmjs.org
- 再执行: npm install --legacy-peer-deps
8.2 解释
- 第三步和第四步由于使用的是 nvm ,因此我直接安装了另一个较高版本的 node,没有升级 npm;
- 最开始我使用的是淘宝镜像,一直有问题,后来换成 npm 的源,就解决了问题;
- 最后一步注意安装还是会存在包的依赖冲突,直接使用 --legacy-peer-deps 忽略。
8.3 解决其他问题
- 由于最后一步导致包之间存在冲突,因此就只能一个一个的解决;
- 我项目中:报错 jsbarcode 包未找到,因此安装了这个包;
- 报错: hasInjectionContext 未找到。
8.4 hasInjectionContext 报错
1. 报错代码
arduino
No matching export in "node_modules/pinia/node_modules/vue-demi/lib/index.mjs" for import "hasInjectionContext"
2. 报错截图

8.5 解决 pinia 模块的报错
- 强制卸载:npm uninstall pinia -f
- 忽略冲突安装:npm install pinia@2.0.36 --legacy-peer-deps
8.6 解释
其实后边的报错就是因为第六步忽略包关系安装导致的,如果能够知道创建项目的 node 版本和 npm 版本,最好不要使用这种方法,因为你不能保证每次都有效,这种方法会引起后续很多包冲突需要一个一个的解决。不过还好就是弄了这么久,我的项目解决了,庆祝一下!
9. 运行结果
