왜 npm install에 충족되지 않은 종속성이 있다고 말합니까?


404

노드 패키지가 있습니다. npm install패키지 루트에서 실행하면 여러 가지를 설치하지만 다음과 같은 몇 가지 오류 메시지가 인쇄됩니다.

npm WARN 충족되지 않은 종속성 / Users / seanmackesey / google_drive / code / explore / generator / node_modules / findup-sync / node_modules / glob에 graceful-fs@'~1.2.0 '이 필요하지만로드됩니다

정확히 무엇을해야할지 혼동해야합니다 npm install. 의존성을 감지하면 설치하면 안됩니까? 어떤 조건에서 이와 같은 오류 메시지가 표시되며 종속성을 어떻게 해결할 수 있습니까?

답변:


397

종속성 해결이 약간 손상 되었기 때문에 https://github.com/npm/npm/issues/1341#issuecomment-20634338을 참조 하십시오.

가능한 해결책은 다음과 같습니다.

  1. 충족되지 않은 종속성이 포함 된 최상위 모듈을 수동으로 설치해야합니다. npm install findup-sync@0.1.2

  2. package.json을 재구성하십시오. 모든 고급 모듈 (다른 모듈에 대한 종속성으로 제공)을 맨 아래에 배치하십시오.

  3. npm install명령을 다시 실행하십시오 .

시간 초과 또는 기타 문제로 인해 npm이 모든 패키지를 다운로드하지 못하면 문제가 발생할 수 있습니다.

참고 :을 사용하여 실패한 패키지를 수동으로 설치할 수도 있습니다 npm install findup-sync@0.1.2.

실행하기 전에 npm install다음 단계를 수행하면 도움이 될 수 있습니다.

  • 다음을 사용하여 node_modules를 제거하십시오. rm -rf node_modules/
  • 운영 npm cache clean

때때로 'node_modules'를 제거해야하는 이유는 무엇입니까? 동안 중첩 모듈이 설치 되지 않으면 npm install이후에 npm install누락 된 중첩 종속성이 감지되지 않습니다.

이 경우 중첩 된 모듈이 누락되어 npm install다시 실행되는 경우 최상위 종속성을 제거하는 것으로 충분할 수 있습니다. 보다


22
노드 모듈을 제거하고 캐시를 청소하면 나에게 도움이되었습니다.
MarkoHiel

4
'node_modules'를 제거하고 'npm cache clean'을 실행 한 다음 'npm install'을 실행하면 문제가 해결되었습니다. 오류없이 모든 종속성을로드 할 때까지 'npm_install'을 세 번 실행해야했습니다.
hendrix

2
경우 npm cache clean액세스 이유로 작동하지 않습니다 시도 sudo npm cache clean.
Soroush

12
@Soroush는 맹목적으로 제대로 작동하지 않는 것들에 sudo를 추가한다고해서 마술처럼 고치는 것은 아니며, 무슨 일이 일어나고 있는지 모른다는 것을 의미합니다.
Edgar Aroutiounian

5
왜 npm에 대한 다른 "솔루션"에 rm r node_modules가 포함됩니까? 왜 이것이 대부분의 경우에 이것이 유일한 옵션일까요? 그것은 확실히 내가 알아낼 방법 패키지 관리자처럼 작동합니다 아니에요
phil294

83

WIFI가 다운되는 동안 나에게 일어났다 npm install. 제거 node_modules하고 다시 실행 npm install하면 문제가 해결되었습니다.


26
시도하십시오 npm cache clean.
ijse

5
노드를 다시 설치해야 할 필요는 없지만 그렇게하는 npm cache clean것과 제거하는 사이 node_modules에이 조언이 효과적이었습니다.
RichLitt

@RichLitt, 네, npm cache clean저에게는 충분하지 않았습니다 node_modules. "설치"중에 네트워크 연결이 실패한 후에도 작동하도록 하려면 제거해야 했습니다.
Mark Tomlin

어떤 node_modules디렉토리를 제거 해야할지 혼란 스럽 습니까? 비슷한 오류가 있습니다/usr/local/lib/node_modules/npm/node_modules/read-installed/node_modules/readdir-scoped-modules requires graceful-fs@'^4.1.2'
wuliwong

1
@wuliwong 최상위 수준입니다.
geon

33

이 명령 줄을 사용하여 문제를 해결했습니다.

  • $ rm -rf node_modules/
  • $ sudo npm update -g npm
  • $ npm install

끝났다!


5
sudo는 NPM 업데이트 -g NPM을 실행 한 후, 내 NPM은 아무것도 결과를 설치하려는 시도 무용지물이 된 메신저이 투표를 아래로해야 할 것! "NPM ERR를 모듈을 찾을 수 없습니다 '패키지-JSON 읽기'"
MichaelB

그것은 나와 다른 사람들을 위해 일했습니다. 아마도 다른 문제가있을 수 있습니다. 모듈 read-package-json을 전 세계적으로 sudo npm install -g read-package-json설치하거나 npm
zatamine을

8
주의 : sudo를 사용하지 말아야합니다. npm대신 npm이 작성하려는 디렉토리의 권한 또는 소유권을 변경하는 것이 좋습니다.
Sgnl

1
너무 거기에 "깨끗한 NPM 캐시"를 추가 할 수 있습니다
알렉산더 밀스에게

1
sudonpm과 함께 사용하지 않음
Grant

11

NPM을 최신 버전으로 업그레이드하면 큰 도움이 될 수 있습니다. 위의 dule의 답변은 종속성 관리가 약간 손상되었다고 말하는 것이 옳지 만 이것은 주로 이전 버전의 npm에 대한 것 같습니다.

이 명령 npm list은 설치된 모든 목록을 제공합니다 node_modules. 버전 1.4.2에서 버전 2.7.4로 업그레이드 할 때 이전에 플래그가 지정된 많은 모듈 WARN unmet dependency이 더 이상 언급되지 않았습니다.

npm을 업데이트하려면 npm install -g npmMacOSX 또는 Linux에서 입력해야합니다 . Windows에서 nodejs 설치 프로그램을 다시 다운로드하고 다시 실행하는 것이 npm을 업데이트하는보다 효과적인 방법이라는 것을 알았습니다.


CentOS 7 저장소에 배포 된 npm 버전과 동일한 문제가있었습니다. node.js에서 최신 npm 버전을 설치했는데 문제가 사라 졌으므로 귀하의 권리는 이전 버전의 문제 일 수 있다고 생각합니다.
Elouan Keryell-Even

9

위의 답변은 node_modules디렉토리 를 삭제 한 후에도 완전히 도움이되지 않았습니다 .

아래 명령이 마침내 도움이되었습니다.

npm config set registry http://registry.npmjs.org/

이것은 안전하지 않은 HTTP 연결을 통해 노드 모듈을 가져옵니다.

Src : https://stackoverflow.com/a/13119867/4082503


이것은 호스트가 트래픽을 리디렉션하는 것뿐만 아니라 나를 도왔습니다.
dimiguel

1
@dimgl 알아두면 좋겠다 :)
Vinay Vemula

1
@Dejel은 다른 답변도 시도하지 않았습니다. npm install여러 번 실행 하거나 일부 노드 패키지를 하나씩 수동으로 설치 해야 할 수도 있습니다 .
Vinay Vemula

4

모든 -- UNMET PEER DEPENDENCY, 예를 들어. 더 이상 없어 질 때까지 -- UNMET PEER DEPENDENCY rxjs@5.0.0-rc.2해당 종속성을 설치 npm install --save rxjs@5.0.0-rc.2하십시오 UNMET DEPENDENCIES.

행운을 빕니다.


1
새 오류를 포함하여 동일한 오류가 발생합니다.ERR! code 1
Wouter Vanherck

1
@WouterVanherck 당신은 시도하십시오 수 있습니다 rm -rf node_modules다음, npm cache cleannpm install. 아직하지 작업을 수행하는 경우, 다시 당신을 제시 rm -rf node_modules한 후, npm i -g yarn다음 yarn install. 원 사는 관리하기에 아주 좋습니다 node_modules. 행운을 빕니다.
Akash

1
그렇습니다 peerDependencies. 의식적으로 버전을 선택하십시오.
카마 페더

3

npm listUNMET DEPENDENCY로 나열된 모든 패키지를 실행 하고 설치했습니다.

예를 들어 :

├── UNMET DEPENDENCY css-loader@^0.23.1
npm install css-loader@^0.23.1


2

이것은 나를 위해 그것을 해결했다.

  1. package.json오류에 따라 에서 버전 번호를 수정하십시오 .
  2. 제거 node_modules( rm -rf node_modules);
  3. 다시 실행하십시오 npm install.

더 이상 오류가 없을 때까지이 단계를 반복하십시오.


1

비슷한 맥락에서 한 가지 다른 단계를 추가하겠습니다.

npm 버전> 1.4.9에서 'npm install'은 devDependencies를 설치합니다. 먼저 기존 모듈과 캐시를 제거하십시오.

remove node_modules $ rm -rf node_modules/
run $ npm cache clean

그런 다음 시도하십시오.

npm install --dev
npm update --dev

이것은 적어도 재귀 종속성 해결을 해결합니다.


6
--dev 플래그는 무엇입니까?
Alexander Mills

1

--dev devDependencies를 재귀 적으로 설치하고 (영원히 실행됩니다.) 어떻게 버전 차이를 해결하는 데 도움이 될 수 있습니까?

node_moduls 폴더를 제거한 다음 npm 캐시를 정리하고 'npm i'를 다시 실행하십시오.


1

React Native CLI를 설치하는 동안 비슷한 문제가 발생했습니다. 나는 /node_modules여기에서 답변을 읽은 후에 어떤 디렉토리를 제거해야하는지 확신하지 못했습니다 . 나는 결국 막 달렸다

npm update -g

그 후 패키지를 설치할 수있었습니다.


1

나는 실행되는 자동 배포 시스템에서 작업하려고 npm install했기 때문에 이러한 솔루션 중 많은 부분이 자동화 된 fasion에서 작동하지 않습니다. 삭제 / 재 작성할 위치에 node_modules/없었거나 Node.js 버전을 쉽게 변경할 수 없었습니다.

그래서 결국 배포 번들에 파일을 npm shrinkwrap추가하고 npm-shrinkwrap.json거기에서 설치를 실행했습니다. 그것은 나를 위해 문제를 해결했다. shrinkwrap 파일을 '도우미'로 사용하면 npm은 올바른 패키지를 찾아서 나를 위해 설치할 수있는 것처럼 보였습니다. (Shrinkwrap에는 다른 기능들도 있지만 이것이이 특별한 경우에 필요한 기능이었습니다).


1

반응 패키지를 설치할 때이 문제가 발생하여 나를 위해 일했습니다. npm install --save <package causing this error>



1

npm install에서 모든 패키지를 설치 npm-shrinkwrap.json하지만 이전 패키지가 package.json사전 설정되어 있지 않은 경우의 패키지를 무시할 수 있습니다 .

프로젝트에가있는 경우 add / remove / change를 추가 할 때마다 프로젝트 를 재생성 npm-shrinkwrap.json해야합니다 .npm shrinkwrappackage.json



0

4.0.0으로 업데이트

Angular 의존성을 최신 버전으로 업데이트하고 애니메이션을 원하는지 다시 확인하는 것만 큼 4로 업데이트하는 것이 쉽습니다. 이것은 대부분의 유스 케이스에서 작동합니다.

Linux / Mac에서 :

npm install @angular/{common,compiler,compiler-cli,core,forms,http,platform-browser,platform-browser-dynamic,platform-server,router,animations}@latest typescript@latest --save 

Windows에서 :

npm install @angular/common@latest @angular/compiler@latest @angular/compiler-cli@latest @angular/core@latest @angular/forms@latest @angular/http@latest @angular/platform-browser@latest @angular/platform-browser-dynamic@latest @angular/platform-server@latest @angular/router@latest @angular/animations@latest typescript@latest --save

그런 다음 일반적으로 사용하는 ng serve 또는 npm start 명령을 실행하면 모든 것이 작동합니다.

당신이 애니메이션에 의존하는 경우, 새를 가져올 BrowserAnimationsModule에서 @angular/platform-browser/animations당신의 루트에 NgModule. 이것이 없으면 코드가 컴파일되고 실행되지만 애니메이션은 오류를 유발합니다. 에서 가져 오기 @angular/core가 더 이상 사용되지 않습니다. 새 패키지에서 가져 오기를 사용하십시오.

import { trigger, state, style, transition, animate } from '@angular/animations';.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.