>웹 프론트엔드 >JS 튜토리얼 >`npm install --legacy-peer-deps`는 무엇을 하며 언제 권장됩니까?

`npm install --legacy-peer-deps`는 무엇을 하며 언제 권장됩니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-28 14:15:191007검색

What does `npm install --legacy-peer-deps` do and when is it recommended?

npm install --legacy-peer-deps의 기능은 정확히 무엇인가요? 권장 시기/잠재적인 사용 사례는 무엇입니까?

TL;DR:

  • NPM v7은 기본적으로 피어 종속성을 설치합니다. 이전 버전의 NPM에서는 그렇지 않습니다.
  • NPM 모듈은 피어 종속성의 특정 버전을 지정해야 합니다.
  • 이미 피어 종속성이 설치되어 있지만 이름이 지정된 버전이 없는 경우 모듈에 추가하면 NPM v7에서 오류가 발생합니다.
  • --legacy-peer-deps를 추가하면 중단이 발생할 위험이 있으므로 이 새로운 요구 사항이 무시됩니다. 변경 사항.

--legacy-peer-deps는 NPM v4에서 v6까지 피어 종속성 설치 동작을 복원합니다.

이 플래그에 대해 생각하는 한 가지 방법은 새로운 작업을 수행하지 않는다는 것입니다. ; 오히려 NPM v7은 이제 기본적으로 피어 종속성을 설치하므로 NPM에게 새로운 작업을 수행하지 말라고 지시하는 것입니다.

많은 경우 이로 인해 버전 충돌이 발생하여 설치 프로세스가 중단됩니다.

--legacy-peer-deps 플래그는 피어 종속성 자동 설치를 우회하는 방법으로 v7에서 도입되었습니다. 이는 NPM에게 피어 deps를 무시하고 어쨌든 설치를 진행하도록 지시합니다. 이것이 NPM v4부터 v6까지의 상황입니다.

종속성 대 PeerDependency

일반 deps와 피어 deps의 차이점이 확실하지 않은 경우 다음과 같은 약간의 맥락을 참고하세요.

  • 종속성: 라이브러리 또는 모듈 프로덕션 환경에서 작동하려면 NPM 모듈이 필요합니다.
  • peerDependency: 피어 종속성은 모듈이 함께 작동하도록 설계된 타사 소프트웨어 라이브러리의 특정 버전 또는 버전 집합입니다. .

이 문제는 부분적으로 React v17에 의해 발생하고 있습니다.

React v17(또는 최근에는 React 18)을 피어 종속성으로 특별히 추가하지 않은 모듈 수가 많기 때문에 이제 v17 React 애플리케이션 내에서 npm 설치를 실행할 때 종속성 트리를 해결할 수 없다는 오류가 발생하는 것이 일반적입니다.

이 오류는 모듈(또는 자체 종속성)이 React v17도 특별히 포함하지 않고 이전 주요 React 버전을 피어 종속성으로 나열할 때마다 발생합니다.

방법 특정 모듈에 대한 피어 종속성을 확인하려면

NPM 자체는 특정 모듈의 페이지에 피어 종속성을 나열하지 않습니다. 그러나 설치 전이나 후에 피어 deps를 확인하는 간단한 해결 방법이 있습니다. 간단히 다음을 실행하세요.

npm info name-of-module peerDependencies

이 명령은 호환되는 모든 버전과 함께 각 피어 종속성의 이름을 반환합니다.

위 내용은 `npm install --legacy-peer-deps`는 무엇을 하며 언제 권장됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.