当前位置: 首页 > news >正文

记录一次 npm ERR! cb() never called! 解决过程

gitlab cicd过程,使用docker部署Vue3前端项目,报错如下:


针对 npm ERR! cb() never called! 这个报错,网上有很多解决方案,大都是清空缓存,重新运行npm 之类的。笔者全都试过,无法解决问题。笔者遇到的问题比较特殊,分析如下:

1、这个项目是2年前建立的,当时的Vue3版本还比较低,使用的node版本是v14.18.1,就在不久前,node官方不再支持node14,才造成打包报错。

2、基于docker文件先打出docker包,gitlab的CICD每次包pipline时都会新建一个docker容器,重新执行npm install 命令;
npm install 无论是否增加代理,都会连到npm官方库拉取安装包,node:v14.18.1对应的npm包已经无法拉取完整的了。

解决:

1、升级node到v16.

2、针对package.json的所有依赖全部清空,然后 针对老的依赖中的每个依赖包单独执行 npm i <package>,如:

npm i moment --save  

安装过程中可能会出现依赖的问题,如下。这个报错就是不知道依赖的Vue是哪个版本,因此也无法安装具体的依赖。解决方法是先安装Vue3的某个版本。

npm i pinia --savenpm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.
npm ERR! code ERESOLVE
npm ERR! ERESOLVE could not resolve
npm ERR!
npm ERR! While resolving: knowledgehub@0.0.0
npm ERR! Found: vue@3.4.13
npm ERR! node_modules/vue
npm ERR!   peer vue@"^3.2.0" from @element-plus/icons-vue@2.3.1
npm ERR!   node_modules/@element-plus/icons-vue
npm ERR!     @element-plus/icons-vue@"^2.3.1" from element-plus@2.8.0
npm ERR!     node_modules/element-plus
npm ERR!       element-plus@"^2.8.0" from the root project
npm ERR!   peer vue@"^3.2.25" from @vitejs/plugin-vue@2.3.4
npm ERR!   node_modules/@vitejs/plugin-vue
npm ERR!     dev @vitejs/plugin-vue@"^2.3.4" from the root project
npm ERR!   4 more (@vue/server-renderer, vue-demi, vue-demi, element-plus)
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! pinia@"*" from the root project
npm ERR!
npm ERR! Conflicting peer dependency: vue@2.6.14
npm ERR! node_modules/vue
npm ERR!   peer vue@">= 2.5 < 2.7" from @vue/composition-api@1.7.2
npm ERR!   node_modules/@vue/composition-api
npm ERR!     peerOptional @vue/composition-api@"^1.4.0" from pinia@2.2.1
npm ERR!     node_modules/pinia
npm ERR!       pinia@"*" from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR!
npm ERR! See C:\Users\jianjuns\AppData\Local\npm-cache\eresolve-report.txt for a full report.

3、先执行需要安装的Vue3的版本

npm i vue@3.2.37 --save  // 此处必须制定Vue3的版本,Vue的版本指定后,其他包的版本会自动指定npm i vue-axios --savenpm i vue-cropper --savenpm i vue-cropper --save

原来的package.json文件如下:

全部依赖更新完成后的截图如下:

观察后可见,vue版本和各个依赖的包的版本都升级到了最新的版本。

修改完成后,重新提交发布,发布成功。

http://www.lryc.cn/news/425272.html

相关文章:

  • WEB渗透免杀篇-加载器免杀
  • 什么是反人性设计?
  • 如何进行长截图的两种方法
  • 基于轨迹的汽车跟随系统横向控制方法
  • 2024年8月15日嵌入式学习
  • C++引用和指针的区别还分不清楚?
  • 【Cesium开发实战】相机捕捉功能,获取当前视图,设定分辨率可下载当前视图图片
  • 基于spring boot的疫情信息管理系统
  • 【秋招笔试】8.11大疆秋招(第二套)-测开岗
  • Vitis AI 基本认知(训练过程)
  • 《SQL 约束:保障数据完整性与准确性的关键防线》
  • Temu半托管即将开通日韩站点,Temu半托管怎么上产品?
  • 谷歌、火狐、Edge浏览器使用allWebPlugin中间件加载ActiveX控件
  • Python利用openpyxl复制Excel文件且保留样式—另存为副本(附完整代码)
  • ITL-Internet Technology Letters
  • Mapreduce_wordcount自定义单词计数
  • 安卓开发中的AppCompat框架使用详解
  • docker中挂桶什么意思
  • 鸿蒙开发Location Kit(位置服务)如何设置
  • O2OA开发知识-后端代理/接口脚本编写也能像前端一样用上debugger
  • 树莓集团:引领数字影像技术培训的标杆
  • 为什么老实人普遍难拿高薪?这个答案让我醍醐灌顶!30岁的我决定开始改变
  • react的pdf转图片格式上传到后端
  • 【STM32 FreeRTOS】任务通知
  • 51单片机学习
  • vue项目实现postcss-pxtoremvue大屏适配
  • 如何打造爆款游戏?开发由你操刀,运维交由我托管,合作共赢创造更大成功
  • 颈部按摩仪语音播报芯片方案,高品质语音IC,NV080D
  • Opencv模板匹配
  • JavaScript DOM事件监听器:深入解析与实践应用