본문 바로가기

카테고리 없음

[번역] Selective dependency resolutions

 

 

Yarn

Fast, reliable, and secure dependency management.

classic.yarnpkg.com

yarn은 선택적 버전 resolutions를 지원하므로 package.json 파일의 resolutions 필드를 통해 의존성 내에서 사용자 지정 패키지 버전 또는 범위를 정의할 수 있습니다. 일반적으로 이 기능을 사용하려면 yarn.lock 파일에서 수동으로 수정해야합니다. 

 

Why would you want to do this?

- 당신의 프로젝트는 새롭게 잘 업데이트 되지 않는 패키지에 의존하고 있을 수 있습니다. 이 패키지는 중요한 업데이트가된 다른 패키지를 포함하고 있을 수 있죠. 이 경우에, 직접 의존성에 지정된 버전 범위가 새로운 하위 의존성을 포함하지 않으면 library 작성자를 기다릴 수 밖에 없습니다.

- 프로젝트 하위 의존성 요소에 중요한 보안 업데이트가 발생했는데 직접 의존성 요소에서 업데이트하기까지 기다릴 수 없습니다.

- 유지 관리되지는 않지만 작동하는 패키지에 의존하고 있는데 그 의존성 중 하나가 업데이트되었습니다. 업그레이드로 인해 문제가 발생하지 않는다는 것을 알고 있고, 사소한 의존성을 업데이트하기 위해 의존하고 있는 패키지를 포크하고 싶지도 않습니다. 

- 의존성이 광범위한 버전 범위를 정의하고 하위 의존성에 문제가 있는 업데이트가 방금 발생하여 이전 버전에 고정하려는 경우입니다.

 

How to use it?

package.json 파일에 resolution 필드를 추가하고 버전 오버라이드를 정의하세요: 

 

package.json:

 

{
  "name": "project",
  "version": "1.0.0",
  "dependencies": {
    "left-pad": "1.0.0",
    "c": "file:../c-1",
    "d2": "file:../d2-1"
  },
  "resolutions": {
    "d2/left-pad": "1.1.1",
    "c/**/left-pad": "^1.1.2"
  }
}

 

yarn install을 실행하세요

 

Tips & Tricks

- 잘못된 resolutions(예: 잘못된 패키지 이름)을 정의하면 경고가 표시됩니다.

- resolution version 또는 범위가 유효하지 않은 경우 경고가 표시됩니다.

- resolution version 또는 범위가 원래 버전 범위와 호환되지 않는 경우 경고가 표시됩니다.