npm install:Could not resolve dependency:peer... 原因和解决方案,长期更新npm相关错误问题

本文主要是介绍npm install:Could not resolve dependency:peer... 原因和解决方案,长期更新npm相关错误问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

亲测可用,若有疑问请私信

前言
最近一个后台管理项目中我集成了tailwindcss框架;在公司的电脑上npm install是没问题的,到家里的电脑npm install 就报错; 报错日志如下:

# npm resolution error report

2021-05-22T14:02:27.205Z

While resolving: ymsh@1.0.0
Found: postcss@7.0.35
node_modules/postcss
  postcss@"^7.0.35" from the root project

Could not resolve dependency:
peer postcss@"^8.0.0" from postcss-cli@8.3.1
node_modules/postcss-cli
  postcss-cli@"^8.3.1" from the root project

Fix the upstream dependency conflict, or retry
this command with --force, or --legacy-peer-deps
to accept an incorrect (and potentially broken) dependency resolution.

Raw JSON explanation object:

{
  "code": "ERESOLVE",
  "current": {
    "name": "postcss",
    "version": "7.0.35",
    "whileInstalling": {
      "name": "ymsh",
      "version": "1.0.0",
      "path": "F:\\代码\\ymsh-shopadmin"
    },
    "location": "node_modules/postcss",
    "dependents": [
      {
        "type": "prod",
        "name": "postcss",
        "spec": "^7.0.35",
        "from": {
          "location": "F:\\代码\\ymsh-shopadmin"
        }
      }
    ]
  },
  "edge": {
    "type": "peer",
    "name": "postcss",
    "spec": "^8.0.0",
    "error": "INVALID",
    "from": {
      "name": "postcss-cli",
      "version": "8.3.1",
      "whileInstalling": {
        "name": "ymsh",
        "version": "1.0.0",
        "path": "F:\\代码\\ymsh-shopadmin"
      },
      "location": "node_modules/postcss-cli",
      "dependents": [
        {
          "type": "prod",
          "name": "postcss-cli",
          "spec": "^8.3.1",
          "from": {
            "location": "F:\\代码\\ymsh-shopadmin"
          }
        }
      ]
    }
  },
  "peerConflict": null,
  "strictPeerDeps": false,
  "force": false
}

家里的node -v 是14.16 跟公司一样,唯独是 npm 版本不一样:家里的是 npm 7.6.1
上述报错日志中有个关键字眼:this command with --force, or --legacy-peer-deps

Fix the upstream dependency conflict, or retry
this command with --force, or --legacy-peer-deps
to accept an incorrect (and potentially broken) dependency resolution.

于是我查了一下是什么意思:
辗转搜索得出这样的答案:
修复上游依赖性冲突,或使用--force或--legacy-peer-deps重试此命令,以接受不正确的(并且可能会损坏的)依赖性解析。

-f或–force参数将强制npm获取远程资源,即使磁盘上存在本地副本也是如此。
同时,用于的文档--legacy-peer-deps说:
–legacy-peer-deps:安装时忽略所有peerDependencies,其样式为npm版本4到版本6。
在新版本的npm(v7)中,默认情况下,npm install当遇到冲突的peerDependencies时将失败。以前不是那样的。
两者之间的区别如下-
--legacy-peer-deps:安装时忽略所有peerDependencies,采用npm版本4到版本6的样式。
--strict-peer-deps:遇到任何冲突的peerDependencies时,失败并中止安装过程。默认情况下,npm仅会因根项目的直接依赖关系而导致的peerDependencies冲突而崩溃。

以上是英文文献翻译过来的,是有点生硬:我简单总结一下:
在新版本的npm(v7)中,默认情况下,npm install当遇到冲突的peerDependencies时将失败。不会继续安装,并提示:

Fix the upstream dependency conflict, or retry
this command with --force, or --legacy-peer-deps
to accept an incorrect (and potentially broken) dependency resolution.

这样的关键字,这是npm版本的依赖冲突的提示使然,
那么npm:何时使用--force和--legacy-peer-deps?
--force 会无视冲突,并强制获取远端npm库资源,即使本地有资源也会覆盖掉
--legacy-peer-deps:安装时忽略所有peerDependencies,忽视依赖冲突,采用npm版本4到版本6的样式去安装依赖,已有的依赖不会覆盖,。
建议用--legacy-peer-deps 比较保险一点,反正我用了就安装成功了;
 
 

这篇关于npm install:Could not resolve dependency:peer... 原因和解决方案,长期更新npm相关错误问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/972982

相关文章

linux生产者,消费者问题

pthread_cond_wait() :用于阻塞当前线程,等待别的线程使用pthread_cond_signal()或pthread_cond_broadcast来唤醒它。 pthread_cond_wait() 必须与pthread_mutex 配套使用。pthread_cond_wait()函数一进入wait状态就会自动release mutex。当其他线程通过pthread

问题:第一次世界大战的起止时间是 #其他#学习方法#微信

问题:第一次世界大战的起止时间是 A.1913 ~1918 年 B.1913 ~1918 年 C.1914 ~1918 年 D.1914 ~1919 年 参考答案如图所示

C++工程编译链接错误汇总VisualStudio

目录 一些小的知识点 make工具 可以使用windows下的事件查看器崩溃的地方 dumpbin工具查看dll是32位还是64位的 _MSC_VER .cc 和.cpp 【VC++目录中的包含目录】 vs 【C/C++常规中的附加包含目录】——头文件所在目录如何怎么添加,添加了以后搜索头文件就会到这些个路径下搜索了 include<> 和 include"" WinMain 和

RecastNavigation之Poly相关类

Poly分成正常的Poly 和 OffMeshPoly。 正常的Poly 又分成 原始的Poly 和 Detail化的Poly,本文介绍这两种。 Poly的边分成三种类型: 1. 正常边:有tile内部的poly与之相邻 2.border边:没有poly与之相邻 3.Portal边:与之相邻的是外部tile的poly   由firstLink索引 得到第一个连接的Poly  通

2024.6.24 IDEA中文乱码问题(服务器 控制台 TOMcat)实测已解决

1.问题产生原因: 1.文件编码不一致:如果文件的编码方式与IDEA设置的编码方式不一致,就会产生乱码。确保文件和IDEA使用相同的编码,通常是UTF-8。2.IDEA设置问题:检查IDEA的全局编码设置和项目编码设置是否正确。3.终端或控制台编码问题:如果你在终端或控制台看到乱码,可能是终端的编码设置问题。确保终端使用的是支持你的文件的编码方式。 2.解决方案: 1.File -> S

vcpkg安装opencv中的特殊问题记录(无法找到opencv_corexd.dll)

我是按照网上的vcpkg安装opencv方法进行的(比如这篇:从0开始在visual studio上安装opencv(超详细,针对小白)),但是中间出现了一些别人没有遇到的问题,虽然原因没有找到,但是本人给出一些暂时的解决办法: 问题1: 我在安装库命令行使用的是 .\vcpkg.exe install opencv 我的电脑是x64,vcpkg在这条命令后默认下载的也是opencv2:x6

问题-windows-VPN不正确关闭导致网页打不开

为什么会发生这类事情呢? 主要原因是关机之前vpn没有关掉导致的。 至于为什么没关掉vpn会导致网页打不开,我猜测是因为vpn建立的链接没被更改。 正确关掉vpn的时候,会把ip链接断掉,如果你不正确关掉,ip链接没有断掉,此时你vpn又是没启动的,没有域名解析,所以就打不开网站。 你可以在打不开网页的时候,把vpn打开,你会发现网络又可以登录了。 方法一 注意:方法一虽然方便,但是可能会有

vue同页面多路由懒加载-及可能存在问题的解决方式

先上图,再解释 图一是多路由页面,图二是路由文件。从图一可以看出每个router-view对应的name都不一样。从图二可以看出层路由对应的组件加载方式要跟图一中的name相对应,并且图二的路由层在跟图一对应的页面中要加上components层,多一个s结尾,里面的的方法名就是图一路由的name值,里面还可以照样用懒加载的方式。 页面上其他的路由在路由文件中也跟图二是一样的写法。 附送可能存在

vue+elementui--$message提示框被dialog遮罩层挡住问题解决

最近碰到一个先执行this.$message提示内容,然后接着弹出dialog带遮罩层弹框。那么问题来了,message提示框会默认被dialog遮罩层挡住,现在就是要解决这个问题。 由于都是弹框,问题肯定是出在z-index比重问题。由于用$message方式是写在js中而不是写在html中所以不是很好直接去改样式。 不过好在message组件中提供了customClass 属性,我们可以利用

SQL Server中,always on服务器的相关操作

在SQL Server中,建立了always on服务,可用于数据库的同步备份,当数据库出现问题后,always on服务会自动切换主从服务器。 例如192.168.1.10为主服务器,12为从服务器,当主服务器出现问题后,always on自动将主服务器切换为12,保证数据库正常访问。 对于always on服务器有如下操作: 1、切换主从服务器:假如需要手动切换主从服务器时(如果两个服务