安装 npm 包时无法解决 Angular 中的依赖树错误
转载:https://www.angularjswiki.com/angular/unable-to-resolve-dependency-tree-error-in-angular-while-installing-npm-packages/
修复 Unable to resolve dependency tree error in Angular
要在安装包时修复Unable to resolve dependency tree error in Angular,npm
请按照以下步骤操作。
- 运行
npm install --save --legacy-peer-deps
而不是npm install
命令。 - 另一种方法是删除
node_modules
文件夹和package_lock.json
文件,然后 在命令npm cache clean --force
后运行npm i --force
。
--force
这是一个依赖冲突(不正确且可能破坏的依赖)错误,因此使用或标志运行命令--legacy-peer-deps
。
npm install --save --legacy-peer-deps
or
npm cache clean --force
npm i --force
另一个临时解决方案是使用以前版本的Node.js
或降级npm
。
将标志设置--legacy-peer-deps
为始终为真
而不是--legacy-peer-deps
每次都传递标志,我们可以将npm
配置设置为true
.
npm config set legacy-peer-deps true
然后清理cache
并运行npm install
npm cache clean --force
npm install
npm install
如果间接运行(即通过脚本),这是最佳选择。
降级 npm 版本
使用 npm 7 时,Unable to resolve dependency tree errors
会出现很多问题,因为对等依赖性问题在版本 7 中被视为错误。
但这些错误在版本 6 中只是警告。
因此,要解决此错误,请在 npm 7 版本中将--legacy-peer-deps
标志设置为true
。
如果上述配置不起作用,请将 npm 7 降级到 npm 6。
降级Node.js
是没有必要的。
因为相关的依赖管理代码在npm
.
降级Node.js
通常会自动进行,因为这样做也会降级npm
。
而不是降级npm
,npx
使用以前版本的npm
安装命令,如下所示。
npx -p npm@6 npm install
是什么Unable to resolve dependency tree error
?
unable to resolve dependency tree
这是Angular 中的示例错误。
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving: project-admin@11.0.0
npm ERR! Found: @angular/common@11.0.3
npm ERR! node_modules/@angular/common
npm ERR! @angular/common@"11.0.3" from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer @angular/common@"^9.1.0 || ^10.0.0" from @agm/core@3.0.0-beta.0
npm ERR! node_modules/@agm/core
npm ERR! @agm/core@"3.0.0-beta.0" from the root project
首先,我们将了解问题。
在上面的错误中@agm/core@3.0.0-beta.0
需要@angular/common version ^9.1.0 or ^10.0.0
。
和实际@angular/common
版本 11.0.3。
问题在于对等依赖性。
所以解决办法就是降级@angular/common
。这是不可取的。
因此,使用遗留依赖逻辑来使用--legacy-peer-deps
.
并自动安装遗留对等依赖项将 npm 配置设置--legacy-peer-deps
为 true。
npm config set legacy-peer-deps true