올바른 방법으로 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.)