지원되는 패키지 소스
pnpm은 다양한 소스에서 패키지를 설치하는 것을 지원합니다. 이러한 소스는 신뢰할 수 있는 소스와 특이한 소스의 두 가지 범주로 나뉩니다.
특이한 소스(Git 저장소나 직접 tarball URL 등)는 전이 종속성에서 사용될 때 공급망 위험을 초래할 수 있습니다. blockExoticSubdeps를 true로 설정하면 전이 종속성이 특이한 소스를 사용하지 못하도록 막을 수 있습니다.
신뢰할 수 있는 소스#
신뢰할 수 있는 소스는 직접 종속성과 전이 종속성 모두에 안전한 것으로 간주됩니다.
npm 레지스트리#
pnpm add package-name은 기본적으로 npm 레지스트리에서 package-name의 최신 버전을 설치합니다.
워크스페이스에서 실행하는 경우, 명령은 먼저 워크스페이스에 있는 다른 프로젝트가 지정된 패키지를 사용하는지 여부를 확인합니다. 이 경우, 이미 사용된 버전이 설치됩니다.
다음을 통해 패키지를 설치할 수도 있습니다.
- 태그:
pnpm add express@nightly - 버전:
pnpm add express@1.0.0 - 버전 범위:
pnpm add express@2 react@">=0.1.0 <0.2.0"
JSR 레지스트리#
버전 10.9.0에서 추가됨
JSR 레지스트리에서 패키지를 설치하려면 jsr: 프로토콜 접두사를 사용하세요:
pnpm add jsr:@hono/hono
pnpm add jsr:@hono/hono@4
pnpm add jsr:@hono/hono@latest
이것은 npm에서 설치하는 것과 동일하게 작동하지만 JSR을 통해 패키지를 확인하도록 pnpm에 지시합니다.
작업 공간#
workspace 내에서 종속성을 추가하고 작업할 때는 linkWorkspacePackages의 설정 여부와 workspace: range protocol의 사용 여부에 따라 구성된 소스에서 패키지가 설치된다는 점에 유의하세요.
로컬 파일 시스템#
로컬 파일 시스템에서 설치하는 방법에는 두 가지가 있습니다.
- tarball 파일(
.tar,.tar.gz또는.tgz)에서 - 디렉토리에서 설치
예시:
pnpm add ./package.tar.gz
pnpm add ./some-directory
디렉터리에서 설치하면 현재 프로젝트의 node_modules에 심볼릭 링크가 생성되므로 pnpm link를 실행하는 것과 같습니다.
특이한 소스#
특이한 소스는 개발에 유용하지만 전이 종속성에서 사용될 때 공급망 위험을 초래할 수 있습니다.
원격 tarball#
인수는 "http://" 또는 "https://"로 시작하는 가져올 수 있는 URL이어야 합니다.
예시:
pnpm add https://github.com/indexzero/forever/tarball/v0.5.6
Git 저장소#
pnpm add <git remote url>
호스트된 Git 공급자로부터 패키지를 설치하여 Git으로 복제합니다.
다음을 통해 Git에서 패키지를 설치할 수 있습니다:
- 기본 브랜치의 최신 커밋:
pnpm add kevva/is-positive
- Git 커밋 해시:
pnpm add kevva/is-positive#97edff6f525f192a3f83cea1944765f769ae2678
- Git 브랜치:
pnpm add kevva/is-positive#master
- 깃 브랜치 참조:
pnpm add zkochan/is-negative#heads/canary
- 깃 태그:
pnpm add zkochan/is-negative#2.0.1
- V-접두사가 붙은 Git 태그:
pnpm add andreineculau/npm-publish-git#v0.0.7
시맨틱 버전을 사용하여 Git 저장소로부터 설치#
semver: 매개변수를 사용하여 설치할 버전(범위)을 지정할 수 있습니다. 예시:
- 엄격한 semver:
pnpm add zkochan/is-negative#semver:1.0.0
- V-접두사가 붙은 엄격한 semver:
pnpm add andreineculau/npm-publish-git#semver:v0.0.7
- Semver 범위를 통한 설치:
pnpm add kevva/is-positive#semver:^2.0.0
- V-접두사가 붙은 semver 버전 범위:
pnpm add andreineculau/npm-publish-git#semver:<=v0.0.7
Git 저장소의 하위 디렉터리에서 설치하기#
path: 매개변수를 사용하여 Git에 호스팅된 모노레포에서 하위 디렉터리만 설치할 수도 있습니다. 예를 들어:
pnpm add RexSkz/test-git-subfolder-fetch#path:/packages/simple-react-app
전체 URL을 통해 Git 저장소에서 설치하기#
더 명시적으로 지정하고 싶거나 다른 Git 호스팅을 사용하는 경우, 전체 Git URL을 작성할 수 있습니다:
# git+ssh
pnpm add git+ssh://git@github.com:zkochan/is-negative.git#2.0.1
# https
pnpm add https://github.com/zkochan/is-negative.git#2.0.1
호스팅 제공자 약어를 사용하여 Git 저장소에서 설치하기#
특정 Git 제공자에 대해 프로토콜 약어 [provider]:를 사용할 수 있습니다:
pnpm add github:zkochan/is-negative
pnpm add bitbucket:pnpmjs/git-resolver
pnpm add gitlab:pnpm/git-resolver
[provider]:를 생략하면 기본값은 github:입니다.
여러 매개변수를 결합하여 Git 저장소에서 설치#
여러 매개변수를 &로 구분하여 결합할 수 있습니다. 이는 모노레포를 포크(fork)한 경우에 유용할 수 있습니다:
pnpm add RexSkz/test-git-subdir-fetch.git#beta\&path:/packages/simple-react-app
beta 브랜치에서 /packages/simple-react-app에 있는 하위 디렉터리만 설치합니다.