본문으로 건너뛰기
버전: 8.x

pnpm에서 changesets 사용하기

note

이 문서를 작성할 당시 최신 pnpm 버전은 v6.14 였습니다. 최신 Changesets 버전은 v2.16.0 이었습니다.

설치

pnpm 워크스페이스에서 changesets를 설정하려면 워크스페이스의 루트에서 개발 의존성으로 changesets를 설치하세요.

pnpm add -Dw @changesets/cli

그런 다음 changesets의 초기화 명령어를 실행합니다.

pnpm changeset init

새 changesets 추가하기

새 changesets를 생성하려면 저장소의 루트에서 pnpm changeset를 실행하세요. .changeset 디렉토리에 생성된 마크다운 파일은 저장소에 커밋되어야 합니다.

변경 사항 릴리즈하기

  1. pnpm changeset version 을 실행합니다. pnpm changeset (및 이들의 의존 항목)로 지정된 패키지의 버전을 bump하고 changelog 파일을 업데이트합니다.
  2. pnpm install 를 실행합니다. 이를 통해 lockfile을 업데이트하고 패키지를 재빌드합니다.
  3. 변경 사항을 커밋합니다.
  4. pnpm publish -r를 실행합니다. 이 명령어는 아직 레지스트리에 없고 버전 충돌된 모든 패키지들을 게시합니다.

GitHub Action 사용하기

To automate the process, you can use changeset version with GitHub actions.

패키지 버전 증가

changeset 파일이 main 브랜치에 도착하면 action이 감지하며, bump된 버전에 대한 모든 패키지를 나열하는 새 PR을 엽니다. 머지되면 패키지가 업데이트되고 publish 속성을 추가함으로써 게시 여부를 결정할 수 있습니다.

게시

Add a new script ci:publish which executes pnpm publish -r. It will publish to the registry once the PR is opened by changeset version.

package.json

{
"scripts": {
"ci:publish": "pnpm publish -r"
},
...
}
name: Changesets
on:
push:
branches:
- main
env:
CI: true
PNPM_CACHE_FOLDER: .pnpm-store
jobs:
version:
timeout-minutes: 15
runs-on: ubuntu-latest
steps:
- name: checkout code repository
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: setup node.js
uses: actions/setup-node@v3
with:
node-version: 14
- name: install pnpm
run: npm i pnpm@latest -g
- name: Setup npmrc
run: echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > .npmrc
- name: setup pnpm config
run: pnpm config set store-dir $PNPM_CACHE_FOLDER
- name: install dependencies
run: pnpm install
- name: create and publish versions
uses: changesets/action@v1
with:
version: pnpm ci:version
commit: "chore: update versions"
title: "chore: update versions"
publish: pnpm ci:publish
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

이 작업에 대한 추가 정보 및 문서는 여기에서 찾을 수 있습니다.