在NPM v7中,现在默认安装peerDependencies。
在很多情况下,这会导致版本冲突,从而中断安装过程。
--legacy-peer-deps标志是在v7中引入的,目的是绕过peerDependency自动安装;它告诉 NPM 忽略项目中引入的各个modules之间的相同modules但不同版本的问题并继续安装,保证各个引入的依赖之间对自身所使用的不同版本modules共存。
做前端开发,如果项目达到了一定的规模,就离不开npm了。
下面简单介绍一下npm的知识。
npm,Node Package Manager的缩写,也就是“节点的包管理器”。
顾名思义,npm是一个软件包管理器,主要进行JAVAScript的包管理。通过npm,我们可以很方便地进行JavaScript包的下载、升级,我们也可以把我们开发的JavaScript包共享给其他使用者。
我们可以简单地把npm当成一个JavaScript语言的Maven,使用起来非常方便。
如果你是一个初学者,你会发现:我们使用npm之前,必须安装Node.js;当我们安装完Node.js之后,我们几乎不使用Node.js,只使用其中的npm。
进一步细思,你就能得出结论:npm好像和Node.js没啥关系!
确实,npm和Node.js原本是没啥关系的:
(1)最初,npm和Node.js是不同的作者开发的;
(2)也许,你会认为npm的第一个字母是Node,名字来源于Node.js;可是,Node.js最初的名字却是Web.js。
npm在Node.js中提供,完全是市场因素。
npm开发出来后,它的作者Isaaz曾经联系过jQuery、Bootstrap的作者,希望他们提交自己的软件包给npm进行管理,但是jQuery、Bootstrap的作者不理睬。
于是Isaaz联系Node.js的作者,当时Node.js并不火,而且缺一个包管理器,二者一拍即合,并且Node.js愿意将npm集成进来,npm成为Node.js的一个组件。
从此,Node.js和npm相互扶持,让Node.js火遍全球,也让npm的用户不断增多,目前npm管理了60万个软件包,平均每天有上亿次下载,曾经对npm爱理不理的jQuery、Bootstrap也加入到了npm。
npm由三个独立的部分组成:
网站:即npmjs官网,我们可以直接访问
注册表(registry):是一个保存软件包的数据库
命令行工具 (CLI):CLI是Command Line Interface的缩写,即命令行接口的缩写,程序员一般通过CLI使用npm。
由于现在npm是Node.js的一个组件,我们只要在网上下载Node.js,并进行安装,即可得到npm。
在命令行下,执行npm -v命令,即可查询npm的版本:
解决办法:
npm i --legacy-peer-deps
参考链接:
https://blog.csdn.net/qq_24504591/article/details/125069979
https://blog.csdn.net/m0_37097272/article/details/117782365