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去兼容这种场景

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/781307.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python | 单变量时间序列分析与预测

时间序列数据是机器学习中最具挑战性的任务之一,也是与数据相关的现实问题之一,因为数据实体不仅取决于物理因素,而且主要取决于它们发生的时间顺序。我们可以基于一个单变量特征和两个双变量或多变量特征来预测时间序列中的目标值&#xff0…

合集:JS异步的六个解决方案详解。

Hello,各位老铁,最近发表了js异步的解决方案,是分开发的,这次我把他汇总起来,方便大家收藏、查看,欢迎点赞评论私信交流。 01.详解:JS异步解决方案之回调函数,及其弊端 02.详解&…

全套医院手术麻醉系统源码 人工智能麻醉系统源码 医疗管理系统源码

全套医院手术麻醉系统源码 人工智能麻醉系统源码 医疗管理系统源码 手术麻醉临床信息系统有着完善的临床业务功能,能够涵盖整个围术期的工作,能够采集、汇总、存储、处理、展现所有的临床诊疗资料。通过该系统的实施,能够规范麻醉科的工作流…

【LV16 day2 平台总线驱动开发---名称匹配】

一、总线、设备、驱动 硬编码式的驱动开发带来的问题: 垃圾代码太多结构不清晰一些统一设备功能难以支持开发效率低下 1.1 初期解决思路:设备和驱动分离 ​ struct device来表示一个具体设备,主要提供具体设备相关的资源(如寄…

[深度学习]yolov8+pyqt5搭建精美界面GUI设计源码实现二

【简单介绍】 基于目标检测算法YOLOv8和灵活的PyQt5界面开发框架,我们精心打造了一款集直观性、易用性和功能性于一体的目标检测GUI界面。通过深度整合YOLOv8在目标识别上的卓越能力与PyQt5的精致界面设计,我们成功研发出一款既高效又稳定的软件GUI。 …

java全排列(力扣Leetcode46)

全排列 力扣原题链接 问题描述 给定一个不含重复数字的数组 nums,返回其所有可能的全排列。你可以按任意顺序返回答案。 示例 示例 1: 输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 示例 2…

OpenHarmony error: signature verification failed due to not trusted app source

问题:error: signature verification failed due to not trusted app source 今天在做OpenHarmony App开发,之前一直用的设备A在测试开效果,今天换成了设备B,通过DevEco Studio安装应用程序的时候,就出现错误&#xf…

gpt 3d三角形 重心坐标填充 沿x轴炫赵师傅

go import pygame from pygame.locals import * import sys import math# 初始化Pygame pygame.init()# 设置窗口大小 width, height 800, 600 screen pygame.display.set_mode((width, height)) pygame.display.set_caption(3D Triangle Fill with Barycentric Coordinates)…

Windows 远程访问 Ubuntu Desktop - 虚拟网络控制台 (Virtual Network Console,VNC)

Windows 远程访问 Ubuntu Desktop - 虚拟网络控制台 [Virtual Network Console,VNC] References 1. Desktop Sharing 2. Desktop Sharing Preferences 勾选 允许其他人查看您的桌面 勾选 要求远程用户输入此密码 取消勾选 必须为对本机器的每次访问进行确定 3. 虚拟…

vue3+vite 模板vue3-element-admin框架如何关闭当前页面跳转 tabs

使用模版: 有来开源组织 / vue3-element-admin 需要关闭的.vue 页面增加以下方法 //setup 里import {LocationQuery, useRoute, useRouter} from "vue-router"; const router useRouter(); function close() {console.log(|--router.currentRoute.value, router.cur…

椋鸟数据结构笔记#3:链表

萌新的学习笔记,写错了恳请斧正。 目录 链表的定义 链表的分类 方向(单向还是双向) 头节点(哨兵节点)的有无 循环或不循环 8种分类 不带头单向不循环链表的实现 带头单向循环链表的实现 链表与顺序表的差异 链…

FPGA高端项目:解码索尼IMX390 MIPI相机转HDMI输出,提供FPGA开发板+2套工程源码+技术支持

目录 1、前言2、相关方案推荐本博主所有FPGA工程项目-->汇总目录我这里已有的 MIPI 编解码方案 3、本 MIPI CSI-RX IP 介绍4、个人 FPGA高端图像处理开发板简介5、详细设计方案设计原理框图IMX390 及其配置MIPI CSI RX图像 ISP 处理图像缓存HDMI输出工程源码架构 6、工程源码…

Mistral 7B v0.2 基础模型开源,大模型微调实践来了

Mistral AI在3月24日突然发布并开源了 Mistral 7B v0.2模型,有如下几个特点: 和上一代Mistral v0.1版本相比,上下文窗口长度从8k提升到32k,上下文窗口(context window)是指语言模型在进行预测或生成文本时&…

暴雨服务器X7740赋能大模型训练

数字经济浪潮愈演愈烈,大模型训练对服务器的要求也越来越高。在此背景下,暴雨信息发布专门为大规模模型训练而设计的全新旗舰GPU服务器—X7740,以卓越的计算性能、高速网络通信能力以及创新的能效表现,有效赋能大模型训练。 X7740 搭载了暴雨信息最新一代的英特尔至强可扩展处理…

银河麒麟安装回退至GCC5.4.0 添加镜像源地址并设置其优先级。问题已解决

问题: 因为软件依赖低版本的gcc,而新版银河麒麟gcc默认时高版本,考虑到软件适配应该考虑最低版本的麒麟系统,需要将gcc降级。 过程中遇到问题,无法直接找到gcc5.4.0 这是没有软件源,需要添加其他软件源&…

mysqldump备份数据库提示ERROR 1064 (42000): You have an error in your SQL syntax

在dos下备份数据库的时候提示上面的错误信息 1 错误详情 ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near mysql-v at line 1错误示例图 2 解决办法 通过查资料…

Codeforces Round 934 (Div. 2) ---- counting is fun (Easy and Hard Version)

目录 F1. Counting Is Fun (Easy Version): 题目大意: 思路解析: 代码实现: D2. Counting Is Fun (Hard Version): 思路解析: 代码实现: F1. Counting Is Fun (Easy Version): 题目大意&#xff1a…

DAY16 二叉树最大深度最小深度完全二叉树节点个数

9.二叉树的最大深度 递归法 后序遍历 本题可以使用前序(中左右),也可以使用后序遍历(左右中),使用前序求的就是深度,使用后序求的是高度。 二叉树节点的深度:指从根节点到该节点…

力扣刷题Days28-66.加一(js)

目录 本题重在思路的学习与思路和代码转换实现关系的学习! 1,题目 2,代码 3,学习与总结 思路回顾 1,题目 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数…

Java知识点重点拓展

1.2 Java语言的特点 Java语言的广泛应用主要得益于它的核心特点,主要包括跨平台性、面向对象特性、安全性等。 特性描述跨平台性Java能够在多种操作系统上运行,这得益于JVM(Java虚拟机)。只要设备安装了对应的JVM,Jav…