npm 패키지 설치 시 종속성 트리 오류를 해결할 수 없습니다.
을 사용하여 할 때npm i
령어,, 음음음음음음 음음음음음음음
Node.js 패키지를 재설치하고 다음을 사용하여 프록시를 off로 설정해 보았습니다.
set HTTP_PROXY=
set HTTPS_PROXY=
아직 문제가 발생.내가 뭘 잘못하고 있지?
업데이트:
다음 명령을 실행하면
npm install --legacy-peer-deps
다음의 에러가 표시됩니다.
이것은 HTTP 프록시와 관련이 없습니다.
여기서 말하는 의존관계 경합(잘못된 의존관계 및 잠재적으로 끊어진 의존관계)이 존재하므로 명령어를 사용하여 실행해 보십시오.--force
, 「」--legacy-peer-deps
이 기능이 활성화되지 않으면 임시 솔루션은 이전 버전의 Node.js(Node.js 버전 다운그레이드)를 사용하고 있습니다.이러한 에러가 발생하는 경우가 있습니다.
OP 업데이트를 기반으로 업데이트:
보시는 바와 같이 다음 오류가 발생합니다.
@angular/http@^9.1.4와 일치하는 버전을 찾을 수 없습니다.
페이지를 보세요.이 권장되지 않는 패키지의 최신 버전은7.2.16
상위 버전(예: )을 요청하는 동안! 문제를 해결하기 위해 프로젝트 종속성을 확인하고 발생한 오류를 따르십시오.
이 명령어를 사용해 보세요.
npm install --save --legacy-peer-deps
먼저 문제를 이해해야 합니다.오류는 다음과 같습니다.
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에는 각공통 9.1.0 또는 10.0.0이 필요합니다.그리고 맨 위의 메시지에는 발견된 각공통값이 실제로는 11.0.3이라고 나와 있습니다.
(의존관계를 조금 더 잘 이해하려면 다음 사이트를 참조하십시오.npm3의 구조)
dependencies — these are the essential dependencies that you rely on and call in your project’s code
devDependencies — these are your development dependencies, for example, a prettier library for formatting code
peerDependencies — if you set a peer dependency in your package.json, you are telling the person who installs your package that they need that dependency with the specified version
optionalDependencies — these dependencies are optional and failing to install them will not break the installation process
bundledDependencies — it’s an array of packages that will come bundled with your package. This is useful when some 3rd party library is not on NPM, or you want to include some of your projects as modules
그렇다면 해결책은 무엇일까요?문제는 피어 의존성에 관한 것입니다.해결책은 angular common을 다운그레이드하거나 --legacy-peer-deps를 사용하여 패키지를 설치하기 위해 레거시 종속 로직을 사용하는 것입니다.따라서 --legacy-peer-deps는 peerDependencies를 자동으로 설치하지 않습니다.이게 너한테 효과가 있을까?아마도, 네.그러나 이 작업을 수행하는 방법을 추가하거나 --legacy-peer-deps를 사용하여 이전 답변 중 하나에서 이 코드를 사용하여 프로젝트 패키지를 나중에 설치할 수 있도록 해야 합니다.
npm config set legacy-peer-deps true
하고 ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ng serve
그러나 --syslog-peer-deps가 사용되었기 때문에 의존관계 패키지가 설치되지 않았습니다.(위의 코드로부터 설정을 실시하지 않았기 때문에) 수동으로 인스톨 할 필요가 있었습니다.5개 정도의 패키지를 수동으로 설치했을 때 --legacy-peer-deps를 사용하여 설치할 수 없는 패키지로 종료했습니다.프로젝트가 미친 듯이 경고를 보내고 감사용 패키지도 많이 있었기 때문에 계속할 수 없었습니다.그래서 저는 이 패키지를 사용하지 않고 다른 패키지를 찾기로 했습니다.
도중에 읽은 기타 솔루션:
- Node.js를 v14로 다운그레이드합니다.그러면 npm이 다운그레이드 됩니다.v14는 아닐 수 있지만 가장 널리 다운그레이드된 버전입니다.
- 패키지 설치를 강제하기 위해 Yarn을 사용하는 사람도 있습니다.개인적으로는 Yarn을 사용해 본 적이 없기 때문에 어떻게 동작하는지 모르겠습니다.
- Angular 및 글로벌 Angular CLI 버전을 요건을 충족하는 버전으로 다운그레이드합니다.제 경우, 각도/공통이고 질문에서는 각도/코어이지만 둘 다 각도 오른쪽 전체를 다운그레이드해야 합니다(여기서는 잘 모르겠습니다).
- 설치하는 패키지의 버전이 Angular를 다운그레이드할 필요가 없는 상위 버전일 수 있습니다.https://updatepackagejson.com/을 사용하여 패키지를 최신 버전으로 업그레이드하려고 할 수도 있지만, 이는 프로젝트가 상당히 새로운 경우에 대비한 것입니다.
「 」의 에, 「 」의 도 실시합니다.--legacy-peer-deps
명령줄 옵션입니다.이 옵션은 설정 옵션으로서 보다 영속적으로 설정할 수도 있습니다.
npm config set legacy-peer-deps true
드디어 답을 찾았어요.이 명령어를 사용해 보세요.
npm install --save --legacy-peer-deps
여기에서는 레거시 피어 디프에 대해 설명합니다.
「」를 사용하고 npm
7,7에서는 에 이 가 많이 합니다.은 「」를 사용합니다.--legacy-peer-deps
npm
7.
안 될 요.npm
Node 없습니다(). 6. Node.js 다운그레이드는 필요하지 않습니다(그러나 해롭지도 않습니다).는 에 .npm
는 Node.js 다운그레이드 시 Node.js 다운그레이드 시 Node.js 다운그레이드 시 다운그레이드 됩니다.npm
뿐만 아니라.
보다 이 적은 npm
를 사용하고 .npx
을 npm
만:install "install " " "install":npx -p npm@6 npm install
다른 실패했을 한해 볼 가 있습니다.node_modules
및 「」를 참조해 주세요.package-lock.json
를 실행하고 나서, 「」를 실행합니다npm install
다시 됩니다. 재생성되고node_modules
★★★★★★★★★★★★★★★★★」package-lock.json
.
이 문제는 npm 7로 업데이트한 후 일부 패키지에서 발생합니다.
'''--legacy-peer-deps
「 」 「 」 。
npm i --legacy-peer-deps
여기에서는 레거시 피어 디프에 대해 설명합니다.
npm 버전3 ~ 6과 같이 패키지 트리를 작성할 때 npm이 peerDependencies를 완전히 무시합니다.
지나치게 엄격한 peerDependencies가 충돌하여 패키지를 설치할 수 없는 경우 이 패키지를 통해 문제를 해결할 수 있습니다.
은 '다보다'로 할 수 .true
npm (npm) :
npm config set legacy-peer-deps true
또는 이 패키지가 최신이 될 때까지 기다립니다.
다음 두 가지 간단한 단계를 수행합니다.
먼저 단말기에서 이 작업을 수행합니다.
npm config set legacy-peer-deps true
다음으로 캐시를 클리어합니다.
npm cache clean --force
마지막으로 명령을 실행합니다.이것은 확실히 효과가 있을 것이다.
이 문제는 종속성 충돌 또는 끊어진 종속성과 관련이 있습니다.강제 설치를 통해 종속성 수정을 수락하면 계속할 수 있습니다.
솔루션:명령어 사용--force
.
는 「」와 .npm install --force @your-npm-package
.
주의: 다음을 사용할 수 있습니다.yarn
에서 실 패키지 매니저와 함께 설치할 수 있는 경우 종속성을 설치합니다.
NPM
를 사용하여 프로젝트에 종속성 버전을 설치하고 관리할 수 있습니다.
npm 버전과 관련하여 React 버전에서도 동일한 문제가 발생하였습니다.
npm 에러가 types/param@16.14.20을 찾았습니다.
따라서 패키지를 기반으로 설치해야 하는 패키지 버전일 수 있습니다.json 파일.
npm 7 버전에서 오류가 발생하여 Node.js 모듈을 설치할 수 없습니다.
npm 버전을 6으로 다운그레이드하면 이러한 문제가 경고가 되어 문제가 해결됩니다.
npm install -g npm@6 명령어를 시험해 보겠습니다.
버전이 이미 설치되어 있는지 확인합니다.npm --version
node_modules 패키지 삭제 및 설치:
a) rm - rf node_modules 삭제
b) 설치: npm i
여러분도 빼보세요.node modules
★★★★★★★★★★★★★★★★★」package-lock.json
명령어파일 'run'npm install
, 「」를 시험해 주세요.npm cache clean --force
처음에 나는 시도했다
npm install
은 나에게 .unable to resolve dependency tree
이 으로 합니다.
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 install --legacy-peer-deps
그리고 그게 내 문제를 해결했다.
이 문제를 해결하려면 다음 두 가지 옵션을 시도해 보십시오.
옵션 1: 다음 실행 후 node_modules 폴더와 package_lock.json 파일을 삭제합니다.
npm cache clean --force after npm i --force
2: 2: 실행
npm install --save --legacy-peer-deps
해결 방법:npm install --legacy-peer-deps
설명:
npm 버전3 ~ 6에서는 peerDependencies는 자동으로 설치되지 않았습니다.또한 트리에서 비활성 버전의 피어 의존관계가 발견되면 경고가 발생합니다.npm v7 현재 peerDependencies는 기본적으로 설치되어 있습니다.
종속성에 루트 프로젝트의 종속성과 충돌하는 일부 peerDependencies가 포함되어 있습니다.
에서 와 같이npm ERR
syslog.syslog.syslog.
면책사항:이것은 npm v7을 실행하고 있는 것을 전제로 하고 있습니다.
주의: 형제 코멘터의 지시에 따라 하면 팀원/머신/빌드봇 간에 일관되게 동기화되지 않는 사용자 범위 구성이 생성됩니다.
프로젝트 기반 레거시 피어 의존 관계
프로젝트가 머신/개발자에게 확산되어 다른 프로젝트가 오염되지 않도록 프로젝트에 관여하고 싶을 것입니다.
npm config set legacy-peer-deps true --location project
하면 됩니다.파일이 생성됩니다..npmrc
이를 저장소에 커밋할 수 있습니다.
legacy-peer-deps=true
그런 다음 다음 실행할 수 있습니다.
npm install
그런 다음 업데이트된 잠금 파일을 커밋합니다.
프로젝트별 구성(
/path/to/my/project/.npmrc
, 자세한 것은 이쪽):npm config set legacy-peer-deps true --location project
사용자별 설정(대상)
$HOME/.npmrc
, 자세한 것은 이쪽)npm config set legacy-peer-deps true --location user
또는 기본 위치는 사용자이므로 다음을 수행합니다.
npm config set legacy-peer-deps true
글로벌 컨피규레이션(디폴트)
$PREFIX/etc/npmrc
, 자세한 것은 이쪽)npm config set legacy-peer-deps true --location global
「」로서 「」라고 하는
--global
--location global
npm config set legacy-peer-deps true --global
일부 프로젝트의 경우 종속성 수정이 간단하지 않을 수 있습니다.
제 경우, 레거시 버전의 의 중요한 의존관계는 웹팩 v3를 도입하고 싶은 것입니다(!). 단, 이것은 그 프로젝트의 빌드 의존관계입니다.
은 기기 on on on on on on on on on on on on on on on on on on on 를 사용하는 것이다.legacy-peer-deps
보류로서.
위기에 처했을 경우는, 의존 관계를 해소해, 그 피어 의존 관계를 적절히 조정하는 것도 고려할 수 있습니다.이것에 의해, 프로젝트가 분기점에 서게 됩니다.
이 오류를 표시하는 두 가지 방법을 사용하여 패키지를 설치할 수 있습니다.
ERESOLVE unable to resolve dependency tree
- 를 사용하여 합니다.
npm install
있다--legacy-peer-deps
npm install --save --legacy-peer-deps
이것은 2개의 명령어의 조합입니다.
a. npm 설정에서 legacy-peer-deps를 true로 설정합니다.
npm config set legacy-peer-deps true
b. 을 사용하여 패키지를 설치합니다.
npm install
npm install
는 이데올로기가 문제인 것.gf-kautomata-pipeline-ui
는 Angular 9 를 하는 반면 Angular 9 는 사용합니다.@angular/http
Angular 7이 필요합니다.(@angular/http
되었으며, 그은 모두 「이행」으로 했습니다.@angular/common
★★★★★★★★★★★★★★★★★★」
참조: https://www.npmjs.com/package/ @filename/filename
Angular 9을 실행하고 있다면
@angular/http
의 서package.json
9에는 (Angular 9에서는 필요 없습니다.)있어야 합니다.
@angular/common
안에서package.json
.실행합니다.
npm i
.
Angular 7을 실행하는 경우 패키지를 엽니다.모든 Angular 패키지가 ^7.0.0보다 높지 않은지 확인합니다.또한 gf-kautomata-pipeline-ui를 제거하거나 gf-kautomata-pipeline-ui의 작성자에게 연락하여 라이브러리가 Angular 7과 호환되는지 확인해야 할 수도 있습니다.
이것으로 충분합니다.
npm install --save --legacy-peer-deps
내 경우 업그레이드 후 다음 오류가 표시되기 시작했습니다.npm
6시 7분이다.
npm ERR! 코드 ERESOLVE npm ERR! ERESOLVE가 종속성 트리를 해결할 수 없습니다.
...
npm ERR!업스트림 의존관계 경합을 수정하거나 --force 또는 --legacy-peer-deps를 사용하여 이 명령을 재시도하여 잘못된(및 잠재적으로 끊어진) 의존관계 해결을 수락합니다.
에는 '어느 쪽인가'로합니다.--legacy-peer-deps
★★★★★★★★★★★★★★★★★」--force
깃발은 쓸모없는 다발을 만들었다.
저는 '아예'를 하려고 했습니다.node_modules
,package-lock.json
및 를 사용하여 .yarn install
이로 인해 yarn.lock 파일이 생성되어 package-lock.json이 생성되어 이후 npm 실행에서 정상적으로 동작했습니다.
: ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★npm
7은 제 프로젝트에서 정상적으로 동작합니다.그 후, 저는 yarn.lock, package-lock.json 및 폴더 node_modules를 삭제하고 다시 컴파일합니다.npm
rm -rf node_modules
rm package-lock.json
yarn install
# Generates a yarn.lock file and a new package-lock.json
# Continue with npm
npm start
Node.js를 업데이트하면 다음과 같이 작동합니다.
node -v
출력:
V xxxx
그리고:
sudo npm install -g n
(안정된 노드릴리즈를 설치하려면 이 명령을 사용합니다).
sudo n stable
「 」가
node_modules
와 ""package-lock.json
다음 파일을 삭제합니다.rm -r node_modules rm package-lock.json
그런 다음 명령을 실행합니다.
npm install --save --legacy-peer-deps npm audit fix --force
.env
루트 디렉토리에 파일을 저장하고 코드 아래에 붙여넣습니다.SKIP_PREFLIGHT_CHECK=true
이제 프로젝트를 시작합니다.
npm start
나는 이 문제에 여러 번 직면했다.드디어 해결책을 찾았습니다.
npm install react-native-paper --legacy-peer-deps
사용하다
npm install --legacy-peer-deps
이건 나한테 효과가 있었어.
이번 건은 제가 문제가 되고 있었습니다.
ERESOLVE에서 종속성 트리를 확인할 수 없습니다.
Angular 13 프로젝트에서 Azure DevOps의 개인 npm 피드에서 가져온 일부 패키지를 사용했습니다.
이 저장소에 액세스하기 위해 .npmrc 파일을 만들었습니다.따라서 npm install 명령어는 더 이상 npm 피드가 아닌 개인 저장소의 모든 패키지를 검색합니다.의존관계 트리 오류를 해결할 수 없습니다.npm install 명령어가 개인 피드가 아닌 npm 피드에서 호스트된 패키지의 대부분을 찾을 수 없었기 때문입니다.
패키지의 스코핑 방법에 관한 놀라운 답을 찾았습니다.
이를 바탕으로 몇 가지 변경을 가했습니다.
내 라이브러리 패키지.json, 스코프 이름 @mylib로 이름을 업데이트합니다.
"name": "@myLib/command-queue",
이 패키지를 빌드하여 개인 피드에 게시합니다.
내 클라이언트 앱(이 패키지를 사용하는 앱)에서 .npmrc 파일을 업데이트하여 이 범위의 패키지에만 내 개인 피드를 사용합니다.
@myLib:registry=https://pkgs.dev.azure.com/... always-auth=true
여기서 명령어 npm install을 실행할 때마다 패키지에 스코프 @myLib가 포함되어 있으면 패키지는 개인 피드로 검색되며 다른 모든 케이스(@angular/...)에 npm 피드를 사용합니다.
이것은 제 클라이언트 앱 패키지의 예시입니다.json 파일:
"@angular/platform-browser-dynamic": "~13.3.0",
"@angular/router": "~13.3.0", <-- this comes from npm
"@myLib/jcg-command-queue": "^2.2.0", <-- This comes from my private feed
또한 이 변경으로 npm install 명령에 --legacy-peer-deps를 추가할 필요가 없어졌습니다.
같은 문제로 인해 다음과 같은 오류가 발생하였습니다.
ERR! ERESOLVE npm ERR! 코드 ERESOLVE npm
ERR! ERR! ERESOLVE npm을 해결할 수 .
ERR! npm
중: @ ERR! @angular/material-modent-adapter@12.1.4npm
ERR! @angular/material@12.0.6npm
ERR! node_modules/@angular/material npm
의 ERR @angular/material@"~12.0.4인치
는 용용 we we we we we we we we wenpm ci
Azure-Pipelines에 클린 설치.
그 소포는 매우 자주 문제가 되었다.json과 package-lock.json이 동기화되지 않았습니다.
그 해결책은 실행이었다.npm install
을 누르고 로컬을 .package-lock.json
.
또한 작업이 실패할 경우 추가 정보를 제공하기 위해 파이프라인에 새 태스크를 추가했습니다.
- task: Npm@1
displayName: npm install
inputs:
command: custom
customCommand: ci
customRegistry: useNpmrc
# ##vso[task.logissue type=error] writes the text to the summary page (error-log).
- bash: echo "##vso[task.logissue type=error] If 'npm install' fails with 'ERESOLVE could not resolve', 'package.json' and 'package-lock.json' (needed for 'npm ci') may be out of sync. Run 'npm install' locally and push the new package-lock.json."
condition: failed() # Only execute on fail
displayName: npm install failed hint
중 ★★package-lock.json
항상 도움이 됩니다.
git checkout -- package-lock.json
상세:레거시 프로젝트의 모든 패키지를 업데이트 할 때 이 문제가 자주 발생하고 있습니다.- 를 사용하는 것은 권장하지 않습니다.npm audit fix
않다npm i --force
.package-lock.json
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★으로 롤백합니다.package.json + package-lock.json
패키지를 추가하는 것이 저에게 가장 안전하고 빠른 변종인 것으로 나타났습니다.
을 위해, 어느쪽인가를 을 한 적이 .npm upgrade
11 the new 11 11 11 11 11 11 11 1111.x my my my my my11.x의 보일러 플레이트ng new
새로운 「신규」를 작성한다.ng new abc
Angular 12.x 에 angular angular angular angular angular angular angular angular angular angularx angular앵귤러 CLI angular angular angular angular 。 이 ★★★★★★★★★★★★★★★★★.npm install -g @angular/cli@latest
잘못을 해결하다ng new abc
.
제 경우 @babel/core 의존관계로 인해 문제가 발생했지만 사용하고 싶지 않았습니다.--force
어떤 결과가 나올지 몰라서 https://www.npmjs.com/,에 가서 패키지를 찾아보고 이전 버전을 최신 버전으로 교체했습니다.그걸로 됐어.
이것은 Node.js 버전의 문제입니다.일부 최신 버전의 Node.js에서는 다음과 같은 오류가 표시될 수 있습니다.
NVM을 사용하여 시스템의 Node.js 버전을 관리하고 Node.js 12를 사용하여 이 오류를 해결합니다.
버전을 변경하는 명령:
nvm use 12
Node.js를 v14로 다운그레이드하면 됩니다.
다음 명령을 사용합니다.
source ~/.bash_profile
nvm use v14.16.1
npm install
언급URL : https://stackoverflow.com/questions/64573177/unable-to-resolve-dependency-tree-error-when-installing-npm-packages
'programing' 카테고리의 다른 글
새 URL을 푸시할 때 React 구성 요소 렌더가 여러 번 호출됩니다. (0) | 2023.03.06 |
---|---|
Python에서 YAML 파일을 JSON 개체로 변환 (0) | 2023.03.06 |
스프링 부트: YAML 파일에서 @Value 로드 (0) | 2023.03.06 |
AngularJS-Twig가 더블컬리브레이트와 경합합니다. (0) | 2023.03.06 |
Gson에서는 기본 no-args 컨스트럭터가 필수입니까? (0) | 2023.03.06 |