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.0
및 alembic@1.0.7
패키지에 종속되므로 이는 모두 “직접” 종속성입니다.
버전 오버라이드
패키지 버전을 종속성으로 추가할 때 패키지 관리자는 프로젝트의 모든 종속성(직접 또는 간접)을 고려해야 하므로 해당 버전이 반드시 패키지 관리자가 설치하는 버전은 아닙니다.예를 들어 이 경우 요청된 XR Plugin Management 패키지는 4.0.3 버전이지만 정보 메시지 (B)에 표시된 것처럼 다른 패키지가 더 상위 버전에 종속되어 있기 때문에 실제로 설치된 버전은 4.0.6입니다.
종속성 그래프
패키지 관리자는 한 번에 하나의 패키지 버전만 설치할 수 있으므로, 프로젝트에 대한 모든 직접 및 간접 종속성 리스트인 종속성 그래프를 구성해야 합니다. 종속성 그래프는 설치할 각 패키지의 버전을 결정합니다.
잠금 파일
패키지 관리자가 모든 버전 충돌을 성공적으로 해결하면 잠금 파일에 해결 방법을 저장하여 결정론적 분명성을 보장(매번 동일한 패키지가 안정적으로 설치됨)하고, 종속성 그래프를 다시 계산하는 데 필요한 시간과 리소스를 줄입니다.