Version: 2023.1
언어: 한국어
패키지 상태 및 라이프사이클
전역 캐시

종속성 및 해결

Package Manager 창에서 작업하는 경우 다양한 소스(레지스트리, 로컬 폴더, 타르볼Git URL)에서 패키지를 설치할 수 있습니다. 하지만 패키지 관리자가 이러한 소스에서 패키지를 원활하게 설치하지만, 먼저 일련의 계산을 통해 설치할 버전 그리고 이 버전을 지원하기 위해 설치할 다른 패키지 및 버전을 결정해야 합니다.

직접 종속성

Package Manager 창을 통해 설치할 패키지 버전을 선택하면 프로젝트 매니페스트에 “종속성”을 추가하게 됩니다.프로젝트가 작동하기 위해 특정 패키지의 특정 버전이 필요하다는 선언입니다.프로젝트에 종속성을 추가하려면 <project-root>/Packages/manifest.json 파일의 dependencies 프로퍼티에 package-name@package-version 형식의 패키지 및 버전에 대한 레퍼런스를 추가하십시오.프로젝트가 직접 종속되어 있으므로 이를 “직접” 종속성이라고 합니다.

간접 종속성

패키지는 작동하기 위해 다른 패키지가 필요할 수도 있습니다.이를 “간접” 또는 중간적 종속성이라고 합니다.패키지 개발자는 개발 시 패키지 매니페스트 파일(<package-root>/package.json)의 dependencies 프로퍼티에 이를 추가합니다.예를 들어 아래의 다이어그램에서 alembic@1.0.7 패키지는 timeline@1.0.0 패키지에 종속되므로 타임라인 패키지는 “간접” 종속성입니다.한편 프로젝트는 cinemachine@2.6.0alembic@1.0.7 패키지에 종속되므로 이는 모두 “직접” 종속성입니다.

직접 종속성과 간접 종속성을 보여주는 다이어그램

버전 오버라이드

패키지 버전을 종속성으로 추가할 때 패키지 관리자는 프로젝트의 모든 종속성(직접 또는 간접)을 고려해야 하므로 해당 버전이 반드시 패키지 관리자가 설치하는 버전은 아닙니다.예를 들어 이 경우 요청된 XR Plugin Management 패키지는 4.0.3 버전이지만 정보 메시지 (B)에 표시된 것처럼 다른 패키지가 더 상위 버전에 종속되어 있기 때문에 실제로 설치된 버전은 4.0.6입니다.

세부 정보 창(A)에서 정보 버튼을 클릭하면 요청한 버전 대신 이 버전이 설치된 이유를 설명하는 텍스트 상자(B)가 나타납니다
세부 정보 창(A)에서 정보 버튼을 클릭하면 요청한 버전 대신 이 버전이 설치된 이유를 설명하는 텍스트 상자(B)가 나타납니다

종속성 그래프

패키지 관리자는 한 번에 하나의 패키지 버전만 설치할 수 있으므로, 프로젝트에 대한 모든 직접 및 간접 종속성 리스트인 종속성 그래프를 구성해야 합니다. 종속성 그래프는 설치할 각 패키지의 버전을 결정합니다.

잠금 파일

패키지 관리자가 모든 버전 충돌을 성공적으로 해결하면 잠금 파일에 해결 방법을 저장하여 결정론적 분명성을 보장(매번 동일한 패키지가 안정적으로 설치됨)하고, 종속성 그래프를 다시 계산하는 데 필요한 시간과 리소스를 줄입니다.


패키지 상태 및 라이프사이클
전역 캐시