npm package latest 태그 변경하기

HYUNGU, KANG·2022년 11월 17일
2

자바스크립트 생태계에서는 npm 을 통해서 패키지(라이브러리)를 배포가 된다.
배포된 패키지는 보통 아래와 같은 스펙으로 설치를 할 수 있게 된다.

npm install package-name@version

설치할때 패키지명 뒤쪽에 @version 으로 붙는곳에 설치할 버전을 지정할 수 있고, version 이외에도 제공이 되는게 바로 tag 이다.

tag를 이용해서 패키지 배포자는 stable, beta, canary, nightly, next, dev 같이 목적에 맞는 버전을 설치할 수 있도록 특정 tag를 설정할 수 있다.

tag 에는 기본적으로 latest 태그가 설정돼있고, 이는 패키지의 최신 버전을 가리키게 된다.
기본 패키지를 설치할때 npm install package-name 명령어는 npm install library-name@latest 와 같이latest 를 설치하도록 동작한다.


latest 태그는 버전에 의존하지 않고, 그저 배포 순서에 따라서 자동으로 설정이 된다(...)
만약 패키지의 여러 메이저 버전을 관리하고 있고, v2를 배포한 뒤 v1을 배포 했다면 latest 태그가 v1으로 설정되고, 패키지를 설치하는 사람들은 v2가 아닌 v1 을 설치하게 된다.

이 경우에는 실제 최신 버전으로 latest 태그를 직접 변경해주어야 한다.
tag 를 변경하기 위해서는 npm cli v9 을 기준으로 npm dist-tag 명령어를 사용하면 된다. (npm tag 명령어는 deprecated 되었다.)

npm dist-tag ls package-name 명령어로 패키지에 설정된 tag 목록을 확인할 수 있다.

$ npm dist-tag ls package-name
latest: 1.0.0

npm dist-tag add package-name@2.0.0 latest 명령어로 패키지의 tag를 변경할 수 있다.

$ npm dist-tag add package-name@2.0.0 latest
+latest: 2.0.0

$ npm dist-tag ls package-name
latest: 2.0.0

tag의 삭제는 npm dist-tag rm package-name tag-name 명령어로 할 수 있다.

관련 이슈: https://github.com/npm/npm/issues/6778
npm-dist-tag: https://docs.npmjs.com/cli/v9/commands/npm-dist-tag

profile
JavaScript, TypeScript and React-Native

0개의 댓글