올바른 방법으로 npm 배포 태그 사용
npm에 패키지를 게시하는 것은 매우 간단합니다. npmjs.com의 계정과
package.json
파일이 포함된 프로젝트만 있으면 됩니다. 그런 다음 몇 가지 간단한 명령으로 패키지를 npm에 게시할 수 있습니다.npm login
npm publish
위의 명령은 프로젝트를 압축하고 npm 레지스트리에 배포합니다. 또한 npm 패키지의
latest
배포 태그가 package.json
파일에 정의된 패키지 버전을 가리킵니다.// Example package.json file
{
"version": "0.1.0"
}
But what is a distribution tag?
이것이 의미하는 바는 패키지 사용자가
npm i my-awesome-package
또는 npm i my-awesome-package@latest
로 패키지를 설치할 때 위의 예에서 버전0.1.0
을 설치한다는 것입니다. 따라서 npm publish
의 version
가 package.json
로 설정된 프로젝트에서 0.1.0
를 실행할 때 latest
패키지 배포 태그는 패키지의 0.1.0
버전에 대한 별칭입니다.그러나 패키지 버전을 npm에 게시하고 싶지만
latest
별칭이 해당 버전을 가리키지 않게 하려면 어떻게 해야 합니까? 예를 들어 릴리스 후보 버전(예: 1.0.0-rc.0
)을 게시하여 사용자가 (npm i [email protected]
포함) 다운로드하고 새 패치/부/주 버전을 게시하기 전에 예정된 변경 사항을 테스트할 수 있습니다. 패키지. 그러나 사람들이 찾고 다운로드할 수 있도록 npmjs.com에서 릴리스 후보를 사용할 수 있기를 원하지만 사용자가 패키지를 업그레이드할 때 이 버전이 표시되는 것을 원하지는 않습니다(예: npm outdated
및 npm upgrade
). 사용자가 npm i my-awesome-package
로 설치할 때도 마찬가지입니다.답은 docs of
npm publish
에 있습니다. 실행 중npm publish
은 실행 중npm publish --tag latest
과 동일합니다. 이것이 패키지 버전이 항상 latest
배포 태그에 매핑되는 이유입니다. 단순히 다른 배포 태그를 제공하여 이를 쉽게 재정의할 수 있습니다. 내가 저지른 실수(distribution tags docs를 제대로 읽지 않은 것에 대한 유죄)는 "좋아, 내 패키지 버전을 태그로 전달하면 latest
가 그것을 가리키지 않을 것"이라고 생각한 것입니다. 그래서 시도했습니다.npm publish --tag 1.0.0-rc.0
오류 메시지를 받기 위해서만:
npm ERR! Tag name must not be a valid SemVer range
the docs으로 돌아가서 문제를 더 잘 이해하는 데 도움이 되었습니다. 그러나 실제로 문제를 해결한 것은 바로 이 제품StackOverflow answer이었습니다.
Package distribution tags are not meant to be version numbers. They are aliases to version numbers. They are words like
latest
,stable
,next
,rc
,experimental
, etc.
따라서
latest
별칭을 지정하지 않고 릴리스 후보를 npm에 게시하는 올바른 방법은 다음을 실행하는 것입니다.npm publish --tag rc
버전 관리 및 게시 워크플로우
전반적으로 이것은 내 패키지의 버전을 지정하고 npm에 게시하기 위해 따르는 워크플로우입니다.
1단계: 패키지 버전을
npm version
로 범프하여 git commit 및 git 태그를 생성합니다(위에서 수행한 패키지 배포 태그와 혼동하지 말 것).npm version patch # for a patch version
npm version minor # for a minor version
npm version major # for a major version
npm version prerelease --pre-id rc # for a release candidate version
2단계: GitHub에서 태그를 푸시할 때 실행되는 GitHub 작업 워크플로가 있습니다. 작업 흐름:
latest
과 일치하는 경우 X.Y.Z
또는 패턴rc
과 일치하는 경우 X.Y.Z-rcN
) npm publish --tag [latest|rc]
3단계: GitHub에서 생성된 태그를 푸시하여 워크플로를 트리거합니다.
4단계 : 이익 ✅
팁
머리 속을 정리하는 데 도움이 된 것은 명령
npm view
이었습니다. 이를 실행하여 npm에 게시된 모든 패키지를 검사할 수 있습니다. 예를 들어 패키지의 배포 태그를 검사하는 데 사용할 수 있습니다.$ npm view web3 dist-tags
{ latest: '1.7.1', next: '2.0.0-alpha.1', rc: '1.7.2-rc.0' }
Reference
이 문제에 관하여(올바른 방법으로 npm 배포 태그 사용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/nop33/using-npm-distribution-tags-the-right-way-562f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)