pnpm publish

레지스트리에 패키지를 게시합니다.

pnpm [-r] publish [<tarball|folder>] [--tag <tag>]
     [--access <public|restricted>] [options]

워크스페이스 내부의 패키지를 게시할 때, 워크스페이스 루트의 LICENSE 파일이 패키지와 함께 압축됩니다(패키지에 자체 라이선스가 있는 경우는 제외).

package.json의 publishConfig 필드를 사용하여 게시 전에 일부 필드를 재정의할 수 있습니다. publishConfig.directory를 사용하여 게시되는 하위 디렉터리를 사용자 지정할 수도 있습니다(보통 서드파티 빌드 도구를 사용하는 경우).

이 명령을 재귀적으로 실행하면(pnpm -r publish) pnpm은 아직 레지스트리에 게시되지 않은 버전을 가진 모든 패키지를 게시합니다.

옵션#

--recursive, -r#

workspace에 있는 모든 패키지를 게시합니다.

--json#

JSON 형식으로 정보를 표시합니다.

--tag <tag>#

지정된 태그가 있는 패키지를 게시합니다. 기본적으로 pnpm publish는 latest 태그를 업데이트합니다.

예시:

# foo 패키지 디렉토리 내부
pnpm publish --tag next
# foo의 다음 버전을 사용하려는 프로젝트에서
pnpm add foo@next

--access <public|restricted>#

게시된 패키지가 공개 또는 제한되어야 하는지 여부를 레지스트리에 알려줍니다.

--no-git-checks#

현재 브랜치가 게시 브랜치인지, 깨끗한 상태인지, 원격과 최신 상태인지 확인하지 않습니다.

--publish-branch <branch>#

  • 기본값: master 및 main
  • 유형: String

최신 변경 사항을 게시하는 데 사용되는 저장소의 기본 브랜치입니다.

--force#

현재 버전이 이미 레지스트리에 있는 경우에도 패키지를 게시하려고 합니다.

--report-summary#

게시된 패키지 목록을 pnpm-publish-summary.json에 저장합니다. 게시된 패키지 목록을 보고하기 위해 다른 도구를 사용할 때 유용합니다.

pnpm-publish-summary.json 파일의 예시:

{
  "publishedPackages": [
    {
      "name": "foo",
      "version": "1.0.0"
    },
    {
      "name": "bar",
      "version": "2.0.0"
    }
  ]
}

--dry-run#

실제로 레지스트리에 게시하는 것을 제외하고 게시가 수행하는 모든 작업을 수행합니다.

--otp#

이중 인증이 필요한 패키지를 게시할 때, 이 옵션은 일회용 암호를 지정할 수 있습니다.

--provenance#

지원되는 클라우드 CI/CD 시스템에서 게시하는 경우, 패키지는 빌드 및 게시된 위치와 공개적으로 연결됩니다.

--filter <package_selector>#

필터링에 대해 자세히 알아보세요.

환경설정#

pnpm-workspace.yaml 파일에서 gitChecks, publishBranch 옵션을 설정할 수도 있습니다.

예시:

pnpm-workspace.yaml
gitChecks: false
publishBranch: production

라이프사이클 스크립트#

  • prepublishOnly
  • prepublish
  • prepack
  • prepare
  • postpack
  • publish
  • postpublish