자동 버전 관리로 NPM 패키지 출시

패키지 릴리스 워크플로를 자동화하는 방법은 여러 가지가 있지만 버전 관리 및 게시를 처리하는 간단한 한 줄 스크립트만 필요한 경우도 있습니다.

{
  "name": "my-awesome-package",
  "version": "1.0.0",
  "scripts": {
    "release": "npm version $(semver $npm_package_version -i minor) && npm publish --tag latest",
  },
  "devDependencies": {
    "semver": "^7.3.7"
  }
}


이 릴리스 스크립트는 패키지의 버전 번호를 증가시키고 패키지를 NPM 레지스트리(또는 다른 레지스트리)에 게시합니다. 버전 번호를 올바르게 증가시키기 위해 npmsemver 패키지는 지정된 마이너 레벨(major/minor/patch)에 따라 다음 버전 번호를 자동으로 찾습니다.

물론 각 semver 레벨 major, minor 및 patch에 대해 세 개의 스크립트를 만들 수 있습니다.

{
  "name": "my-awesome-package",
  "version": "1.0.0",
  "scripts": {
    "release:major": "npm version $(semver $npm_package_version -i major) && npm publish --tag latest",
    "release:minor": "npm version $(semver $npm_package_version -i minor) && npm publish --tag latest",
    "release:patch": "npm version $(semver $npm_package_version -i patch) && npm publish --tag latest"
  },
  "devDependencies": {
    "semver": "^7.3.7"
  }
}


사용자 접미사가 포함된 프리릴리즈 패키지



팀에서 작업 중이고 다른 프로젝트에서 테스트하기 위해 패키지를 릴리스해야 하는 경우 동료가 실수로 최신 업데이트를 설치하는 것을 방지하기 위해 먼저 해당 패키지를 알파 또는 베타 버전으로 릴리스할 수 있습니다. 이 중간 버전을 1.0.0-1과 같이 시험판이라고 합니다. 물론 이 버전은 여전히 ​​다른 팀원의 기존 버전과 충돌할 수 있습니다. 버전을 진정으로 고유하게 만들기 위해 사용자 이름을 버전 접미사에 추가할 수 있습니다. 결과적으로 사용자 이름이 zirkelc인 1.0.1-zirkelc.1과 같은 버전 번호가 생성됩니다.

{
  "name": "my-awesome-package",
  "version": "1.0.0",
  "scripts": {
    "release:beta": "npm version $(semver $npm_package_version -i prerelease --preid $(npm whoami) ) && npm publish --tag beta",
  },
  "devDependencies": {
    "semver": "^7.3.7"
  }
}


명령 npm whoami 은 현재 로그인한 사용자의 npm 사용자 이름을 반환합니다. 이것은 GitHub Registry와 같은 개인 레지스트리에서도 작동합니다. npm은 기본적으로 latest 태그가 있는 패키지를 게시하기 때문에 플래그--tag beta가 필요합니다. 이 시험판 버전을 다른 패키지에 설치하려면 명령npm install my-awesome-package@beta을 latest 대신 beta 태그와 함께 실행해야 합니다(생략된 경우 기본 태그).

좋은 웹페이지 즐겨찾기