npm 更新和对等依赖项的问题

时间:2021-07-05 07:59:26

标签: node.js npm

我接手了一位前同事的 angular 项目。不幸的是,我在 angular 和 npm 方面不是很有经验。当我推送项目的新版本时,gitlab 运行程序会创建它的新 docker 映像。在项目构建和运行顺利的同时,我在Gitlab中可以看到很多警告,主要是它给出了很多警告,主要是由于已弃用的包。我想对此做点什么,并更新了 angular 和一些包。以下是“npm outdated”目前给出的内容:

Package                            Current   Wanted  Latest  Location                                        Depended by
@angular-devkit/build-angular       12.0.5   12.0.5  12.1.1  node_modules/@angular-devkit/build-angular
@angular-devkit/core                12.0.5   12.1.1  12.1.1  node_modules/@angular-devkit/core
@angular-devkit/schematics          12.0.5   12.1.1  12.1.1  node_modules/@angular-devkit/schematics
@angular/animations                 12.0.5   12.0.5  12.1.1  node_modules/@angular/animations
@angular/cli                        12.0.5   12.0.5  12.1.1  node_modules/@angular/cli
@angular/common                     12.0.5   12.0.5  12.1.1  node_modules/@angular/common
@angular/compiler                   12.0.5   12.0.5  12.1.1  node_modules/@angular/compiler
@angular/compiler-cli               12.0.5   12.0.5  12.1.1  node_modules/@angular/compiler-cli
@angular/core                       12.0.5   12.0.5  12.1.1  node_modules/@angular/core
@angular/elements                   12.0.5   12.1.1  12.1.1  node_modules/@angular/elements
@angular/forms                      12.0.5   12.0.5  12.1.1  node_modules/@angular/forms
@angular/language-service           12.0.5   12.0.5  12.1.1  node_modules/@angular/language-service
@angular/localize                   12.0.5   12.1.1  12.1.1  node_modules/@angular/localize
@angular/platform-browser           12.0.5   12.0.5  12.1.1  node_modules/@angular/platform-browser
@angular/platform-browser-dynamic   12.0.5   12.0.5  12.1.1  node_modules/@angular/platform-browser-dynamic
@angular/router                     12.0.5   12.0.5  12.1.1  node_modules/@angular/router
@schematics/angular                 10.2.3   10.2.3  12.1.1  node_modules/@schematics/angular
@types/jasmine                      3.6.11   3.6.11   3.7.7  node_modules/@types/jasmine
@types/node                        14.17.4  14.17.4  16.0.0  node_modules/@types/node
chart.js                             2.9.4    2.9.4   3.4.1  node_modules/chart.js
core-js                             3.15.1   3.15.2  3.15.2  node_modules/core-js
fs-extra                             9.1.0    9.1.0  10.0.0  node_modules/fs-extra
jasmine-core                         3.6.0    3.6.0   3.8.0  node_modules/jasmine-core
jasmine-spec-reporter                5.0.2    5.0.2   7.0.0  node_modules/jasmine-spec-reporter
prettier                             2.2.1    2.2.1   2.3.2  node_modules/prettier
rxjs                                 6.6.7    6.6.7   7.1.0  node_modules/rxjs
ts-node                             8.10.2   8.10.2  10.0.0  node_modules/ts-node
typescript                           4.2.4    4.2.4   4.3.5  node_modules/typescript

然而,当我尝试'npm update angular-oauth2-oidc-jwks'时,我遇到了很多这样的错误:

npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR! 
npm ERR! While resolving: simplecomp@0.3.6
npm ERR! Found: tslib@2.3.0
npm ERR! node_modules/tslib
npm ERR!   tslib@"^2.0.0" from the root project
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! peer tslib@"^1.10.0" from angular-oauth2-oidc-jwks@9.0.0
npm ERR! node_modules/angular-oauth2-oidc-jwks
npm ERR!   angular-oauth2-oidc-jwks@"^9.0.0" 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.

我已经阅读了一些文档和我在 google 上找到的不同内容,但我仍然没有真正了解我应该知道的内容。我确实知道问题是由写入 package.json 的依赖项引起的。当我在 package.json 中搜索“tslib”时,在“依赖项”下有一个条目“tslib”:“^2.0.0”。这意味着我的项目(认为它)需要 tslib 的 2.0.0 版本,对吗?但是我想更新的包需要一个版本。我理解正确吗?

我不知道该怎么办。有人可以尝试带我过去吗?是否有针对所有此类冲突的一种解决方案,还是我必须以不同的方式解决每个依赖项冲突?

提前致谢

1 个答案:

答案 0 :(得分:0)

我也有类似的问题。我试过了:

重新安装angular cli

npm uninstall -g @angular/cli

#Clear Cache:

npm cache clean --force

npm cache verify

#Install Angular CLI:

npm install -g @angular/cli