pnpm version

추가된 버전: v11.0.0

패키지 버전을 올립니다.

pnpm version <newversion>
pnpm version <major|minor|patch|premajor|preminor|prepatch|prerelease|from-git>
pnpm version -r [--dry-run]

<newversion>에는 위의 버전 증가 유형 중 하나 또는 명시적인 semver 버전(예를 들어 1.2.3)을 지정할 수 있습니다. 워크스페이스와 workspace: 프로토콜이 지원되므로 워크스페이스 패키지 간의 상호 참조가 올바르게 업데이트됩니다.

Git 저장소 안에서 실행하면 pnpm version은 버전 변경에 대한 git 커밋과 주석이 달린 태그를 생성합니다. 작업 트리가 깨끗해야 하며(아래의 --no-git-checks 참고), --no-git-tag-version으로 커밋/태그 생성을 비활성화할 수 있습니다. 재귀 모드에서는 한 번의 실행으로 여러 패키지가 서로 다른 버전으로 올라갈 수 있으므로 Git 커밋과 태그가 항상 생략됩니다.

사용#

pnpm version patch
pnpm version minor
pnpm version major
pnpm version 2.0.0
pnpm version prerelease --preid beta

재귀 릴리스#

추가된 버전: v11.13.0

다음과 같이 -r과 함께 버전 인수 없이 실행하면 pnpm change로 기록된 대기 중인 변경 의도를 사용합니다:

pnpm version -r

이 명령은 .changeset/*.md 의도 파일로부터 릴리스 계획을 구성하고 적용합니다: 의도에서 지정한 모든 패키지의 버전이 올라가며, workspace: 범위를 통해 해당 패키지에 의존하는 모든 패키지의 버전도 올라갑니다. 그런 다음 변경 로그를 작성하고 사용된 의도를 .changeset/ledger.yaml에 기록합니다.

아무것도 변경하지 않고 계획을 미리 보려면 다음을 실행하세요:

pnpm version -r --dry-run

워크스페이스의 일부로 범위를 좁히려면 --filter를 사용하세요. 선택 범위는 더 이상 변하지 않을 때까지 확장되므로, 고정 그룹의 동반 패키지와 버전 증가로 인해 범위가 무효화되는 종속 패키지가 자동으로 포함됩니다.

작업 트리가 깨끗해야 하며, --dry-run 또는 --no-git-checks를 전달한 경우에는 예외입니다. 전체 워크플로는 릴리스 관리를 참고하세요.

옵션#

--preid <prerelease-id>#

시맨틱 버전의 프리릴리스 부분에 접두사로 사용할 "프리릴리스 식별자"입니다.

pnpm version prerelease --preid beta

--message, -m <message>#

커밋 메시지입니다. 메시지의 모든 %s는 새 버전으로 대체됩니다. 기본값은 %s입니다.

pnpm version patch --message "chore: release v%s"

--tag-version-prefix <prefix>#

Git 태그를 생성할 때 사용하는 접두사입니다. 기본값은 v입니다 (예를 들어 v1.2.3). 접두사를 완전히 없애려면 빈 문자열로 설정하세요.

--no-git-tag-version#

버전 변경에 대한 git 커밋이나 태그를 생성하지 않습니다.

--no-commit-hooks#

버전 변경을 커밋할 때 git 커밋 훅을 건너뜁니다 (--no-verify).

--sign-git-tag#

생성된 git 태그에 GPG로 서명합니다 (git tag -s).

--no-git-checks#

버전을 올리기 전에 작업 트리가 깨끗한지 확인하지 않습니다.

--allow-same-version#

버전을 현재 버전과 같게 설정하는 것을 허용합니다. CI 파이프라인에서 유용할 수 있습니다.

--recursive, -r#

워크스페이스의 모든 패키지에 버전 변경을 적용합니다 (선택적으로 --filter로 범위를 좁힐 수 있음). 재귀 모드에서는 Git 커밋과 태그 생성이 생략됩니다.

--json#

버전이 올라간 패키지 목록을 JSON 형식으로 출력합니다.