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

npm mongoose包下载冲突解决之道

我在新电脑下载完项目代码后,运行

npm install --registry=https://registry.npm.taobao.org

1运行就报错:

npm ERR! code ERESOLVE

npm ERR! ERESOLVE unable to resolve dependency tree

npm ERR!

npm ERR! While resolving: lowcode-form-backend@1.0.0

npm ERR! Found: mongoose@5.13.22

npm ERR! node_modules/mongoose

npm ERR! dev mongoose@"^5.7.5" from the root project

npm ERR!

npm ERR! Could not resolve dependency:

npm ERR! peer mongoose@"^4.1.12" from mongoose-auto-increment@5.0.1

npm ERR! node_modules/mongoose-auto-increment

npm ERR! dev mongoose-auto-increment@"^5.0.1" 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\13066\AppData\Local\npm-cache\eresolve-report.txt for a full report.

npm ERR! A complete log of this run can be found in:

npm ERR! C:\Users\13066\AppData\Local\npm-cache_logs\2024-01-11T08_07_58_049Z-debug.log

D:\h5\code\gitlab\backend\lowcode-form-backend>npx mongoose --version

npm ERR! could not determine executable to run

npm ERR! A complete log of this run can be found in:

npm ERR! C:\Users\13066\AppData\Local\npm-cache_logs\2024-01-11T08_13_20_531Z-debug.log

分析问题:看到这个错误提示,就发现是mongoose这个数据库的版本冲突了,那我就想搞明白,这些是谁?

于是我通过cmd去输入mongoose --version,发现没找到相应命令,那就不是电脑的mongoose版本,于是通过visiable studio 查看,发现了端倪:

从上图发现有3个文件有这个,对于我来讲,只要package.json,那我就把剩下的两个删除即可,删除后运行结果如下:

发现解决了不了问题:

于是我去mongoose-auto-increment - npm查找了下mongoose-auto-increment,发现它最新的一版竟然是8年前?

8年前是2016年,那2016年mongoose是什么版本?

我查了一下:

mongoose - npm

我大概我理解了意思:

怎么办?

那就把mongoose改成大家可以接受的版本:

"mongoose": "^4.1.12",

删除package-lock.json和node_modules,重新运行:npm install --registry=https://registry.npm.taobao.org

可以安装成功

运行npm run dev跑起来,报如下错误:

throw new TypeError('Undefined type ' + name + ' at `' + path +

^

TypeError: Undefined type ObjectID at _id

Did you try nesting Schemas? You can only nest using refs or arrays.

at Function.Schema.interpretAsType (D:\h5\code\gitlab\backend\lowcode-form-backend\node_modules\mongoose\lib\schema.js:673:11)

at Schema.path (D:\h5\code\gitlab\backend\lowcode-form-backend\node_modules\mongoose\lib\schema.js:529:29)

at Schema.add (D:\h5\code\gitlab\backend\lowcode-form-backend\node_modules\mongoose\lib\schema.js:411:12)

at new Schema (D:\h5\code\gitlab\backend\lowcode-form-backend\node_modules\mongoose\lib\schema.js:105:10)

at Object. (D:\h5\code\gitlab\backend\lowcode-form-backend\models\user.js:8:21)

at Module._compile (node:internal/modules/cjs/loader:1099:14)

at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)

at Module.load (node:internal/modules/cjs/loader:975:32)

at Function.Module._load (node:internal/modules/cjs/loader:822:12)

at Module.require (node:internal/modules/cjs/loader:999:19)

at require (node:internal/modules/cjs/helpers:102:18)

at Object. (D:\h5\code\gitlab\backend\lowcode-form-backend\routes\auth.js:3:15)

at Module._compile (node:internal/modules/cjs/loader:1099:14)

at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)

at Module.load (node:internal/modules/cjs/loader:975:32)

at Function.Module._load (node:internal/modules/cjs/loader:822:12)

怎么办?看上面的错误看样子是ObjectId 没有,会不会是版本不对?

我去查看下,相应的版本是否正确

node_modules\mongoose-auto-increment\package.json "version": "5.0.1",版本正常:

\node_modules\mongoose\package.json "version": "4.13.21",

好像不太对,mongoose-auto-increment要求的是4.1.12, 实际是4.13.21,

配置代码:"mongoose": "^4.1.12",表示可以4.x.x,但不包含5.x.x

为了让运行不报错误,于是我改成"mongoose": "4.1.12",

删除mongoose重新运行

npm install mongoose --registry=https://registry.npm.taobao.org

结果一样,崩溃了,怎么办?

找帮哥,结果他给了我一份他那里的下载好的node_modules

我直接放到目录上,运行npm run dev

成功!

我错在哪?

我看了node_modules\mongoose-auto-increment\package.json的依赖,这句表示"mongoose": "^4.1.12",mongoose只能是4.x.x了,如果是5.x.x和6.x.x是不行的

"dependencies": {

"extend": "^3.0.0"

},

"peerDependencies": {

"mongoose": "^4.1.12"

},

"devDependencies": {

"async": "","chai": "",

"mocha": "*",

"mongoose": "^4.1.12"

}

但我看了同事给我的,他的node_modules\mongoose\package.json "version": "5.13.21",就是5.xx.xx,不是4.xx.xx,从上面的错误看出来还有一个--force参数,可以强制成某个版本如下图

于是我想到了另外一个办法,就是使用npm install --force --registry=https://registry.npm.taobao.org

删除node_modules重新运行npm install --force --registry=https://registry.npm.taobao.org

结果刚刚的报错竟然变成警告,可以继续往下走:

下载完成后,我去查看node_modules\mongoose\package.json "version": "5.13.22" 竟然如此的像,好有了,有戏了,运行npm run dev试试

结果运行成功,如下图:

我在想npm install --legacy-peer-deps --registry=https://registry.npm.taobao.org,可以么?

我试了下,还真可以,

运行结果:我去查看node_modules\mongoose\package.json "version": "5.13.22",和上面一样,运行npm run dev也行

总结:

面对上面的冲突,我们有三种解决:

①如果有同事能成功了,直接复制他的node_modules也行,因为是下载环节出问题了,现在这种办法就是跳过下载环节

②使用 --force或者 --legacy-peer-deps 让npm去兼容这种场景

③手动调整被依赖的冲突包的版本,以达到几个依赖都能兼容,再测试运行看效果

相关文章:

npm mongoose包下载冲突解决之道

我在新电脑下载完项目代码后,运行 npm install --registryhttps://registry.npm.taobao.org 1运行就报错: npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resolving: lowcode-form-backend1.0.0 npm …...

26. UE5 RPG同步面板属性(二)

在上一篇,我们解析了UI属性面板的实现步骤: 首先我们需要通过c去实现创建GameplayTag,这样可以在c和UE里同时获取到Tag创建一个DataAsset类,用于设置tag对应的属性和显示内容创建AttributeMenuWidgetController实现对应逻辑 并且…...

五、postman基础使用案例

postman基础使用 相关案例【传递查询参数】【提交表单数据】【提交JSON数据】 注:postman⼀款⽀持调试和测试的⼯具,开发、测试⼯程师都可以使⽤。方法一般统一为:方法→请求头→请求体→断言 相关案例 【传递查询参数】 访问TPshop搜索商品的…...

Git合并利器:Vimdiff使用指南

使用 vimdiff 作为 Git 的合并工具确实可能会让新手感到困惑,但它是一个功能强大的工具,一旦掌握了它,就可以非常高效地进行代码合并和比较。以下是一个简短的教程,旨在帮助理解 vimdiff 的基本用法以及如何利用它来进行 Git 合并…...

阿里云2核4G服务器租用价格_30元3个月_165元一年_199元

阿里云2核4G服务器租用优惠价格,轻量2核4G服务器165元一年、u1服务器2核4G5M带宽199元一年、云服务器e实例30元3个月,活动链接 aliyunfuwuqi.com/go/aliyun 活动链接如下图: 阿里云2核4G服务器优惠价格 轻量应用服务器2核2G4M带宽、60GB高效…...

<QT基础(2)>QScrollArea使用笔记

项目需要设置单个检查的序列图像预览窗口,采用QScrollArea中加入QWidget窗口,每个窗口里面用Qlabel实现图像预览。 过程涉及两部分内容 引入QWidget 引入label插入图像(resize) 引入布局 组织 scrollArea内部自带Qwidget&#…...

springboot企业级抽奖项目业务四 (缓存预热)

缓存预热 为什么要做预热: 当活动真正开始时&#xff0c;需要超高的并发访问活动相关信息 必须把必要的数据提前加载进redis 预热的策略: 在msg中写一个定时任务 每分钟扫描一遍card_game表 把(开始时间 > 当前时间)&& (开始时间 < 当前时间1分钟)的活动及相…...

opejdk11 java 启动流程 java main方法怎么被jvm执行

java启动过程 java main方法怎么被jvm执行 java main方法是怎么被jvm调用的 1、jvm main入口 2、执行JLI_Launch方法 3、执行JVMInit方法 4、执行ContinueInNewThread方法 5、执行CallJavaMainInNewThread方法 6、创建线程执行ThreadJavaMain方法 7、执行ThreadJavaMain方法…...

link 样式表是否会阻塞页面内容的展示?取决于浏览器,edge 和 chrome 会,但 firefox 不会。

经过实测&#xff1a; 在 head 中 link 一个 1M 大小的样式表。设置网络下载时间大概为 10 秒。 edge 和 chrome 只有在下载完样式表后&#xff0c;页面上才会出现内容。而 firefox 可以直接先显示内容&#xff0c;然后等待样式表下载完成后再应用样式。 DOMContentLoaded 事…...

uniapp对接极光推送(国内版以及海外版)

勾选push&#xff0c;但不要勾选unipush 国内版 网址&#xff1a;极光推送-快速集成消息推送功能,提升APP运营效率 (jiguang.cn) 进入后台&#xff0c;并选择对应应用开始配置 配置安卓包名 以及ios推送证书&#xff0c;是否将生产证书用于开发环境选择是 ios推送证书…...

智慧城市数字孪生,综合治理一屏统览

现代城市作为一个复杂系统&#xff0c;牵一发而动全身&#xff0c;城市化进程中产生新的矛盾和社会问题都会影响整个城市系统的正常运转。智慧城市是应对这些问题的策略之一。城市工作要树立系统思维&#xff0c;从构成城市诸多要素、结构、功能等方面入手&#xff0c;系统推进…...

在Java中对SQL进行常规操作的通用方法

SQL通用方法 一、常规方法增删改查二、具体优化步骤1.准备工作2.getcon()方法&#xff0c;获取数据库连接对象3.closeAll()方法&#xff0c;关闭所有资源4.通用的增删改方法5.通用的查询方法6.动态查询语句 总结 一、常规方法增删改查 在常规方法中&#xff0c;我们在Java中对…...

JavaSE day16笔记 - string

第十六天课堂笔记 学习任务 Comparable接口★★★★ 接口 : 功能的封装 > 一组操作规范 一个抽象方法 -> 某一个功能的封装多个抽象方法 -> 一组操作规范 接口与抽象类的区别 1本质不同 接口是功能的封装 , 具有什么功能 > 对象能干什么抽象类是事物本质的抽象 &…...

java将文件转成流文件返回给前端

环境&#xff1a;jdk1.8&#xff0c;springboot2.5.3,项目端口号&#xff1a;9100 1.待转换的文件 一、路径 二、文件内容 2.controller中代码 package com.example.pdf.controller;import com.example.pdf.service.GetFileStreamService; import org.springframework.web.b…...

使用Node.js常用命令提高开发效率

Node.js是一个基于Chrome V8引擎的JavaScript运行时环境&#xff0c;广泛用于构建服务器端应用程序和命令行工具。Node.js提供了丰富的命令和工具&#xff0c;可以帮助开发者更高效地开发应用程序。在日常开发中&#xff0c;除了Node.js本身的核心功能外&#xff0c;npm&#x…...

百度资源平台链接提交

百度资源平台是百度搜索引擎提供的一个重要工具&#xff0c;用于帮助网站主将自己的网站链接提交给百度搜索引擎&#xff0c;以便更快地被收录和展示在搜索结果中。以下将就百度资源平台链接提交的概念、操作方法以及其对网站收录和曝光的影响进行探讨&#xff1a; 什么是百度资…...

力扣爆刷第108天之CodeTop100五连刷26-30

力扣爆刷第108天之CodeTop100五连刷26-30 文章目录 力扣爆刷第108天之CodeTop100五连刷26-30一、15. 字符串相加二、300. 最长递增子序列三、42. 接雨水四、43. 重排链表五、142. 环形链表 II 一、15. 字符串相加 题目链接&#xff1a;https://leetcode.cn/problems/add-strin…...

Android裁剪图片为波浪形或者曲线形的ImageView

如果需要做一个自定义的波浪效果的进度条&#xff0c;裁剪图片&#xff0c;对ImageView的图片进行裁剪&#xff0c;比如下面2张图&#xff0c;如何实现&#xff1f; 先看下面的效果&#xff0c;看到其实只需要对第一张高亮的图片进行处理即可&#xff0c;灰色状态的作为背景图。…...

Linux课程____shell脚本应用

:一、认识shell 常用解释器 Bash , ksh , csh 登陆后默认使用shell&#xff0c;一般为/bin/bash&#xff0c;不同的指令&#xff0c;运行的环境也不同 二、 编写简单脚本并使用 # vim /frist.sh //编写脚本文件&#xff0c;简单内容 #&#xff01;/bin/bash …...

设计模式12--组合模式

定义 案例一 案例二 优缺点...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

ServerTrust 并非唯一

NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

&#x1f680; C extern 关键字深度解析&#xff1a;跨文件编程的终极指南 &#x1f4c5; 更新时间&#xff1a;2025年6月5日 &#x1f3f7;️ 标签&#xff1a;C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言&#x1f525;一、extern 是什么&#xff1f;&…...

Razor编程中@Html的方法使用大全

文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...