pnpm install
별칭: i
pnpm install은 프로젝트의 모든 종속성을 설치하는 데 사용됩니다.
CI 환경에서, lockfile이 있지만 업데이트가 필요한 경우 설치가 실패합니다.
workspace 내부에서 pnpm install은 모든 프로젝트의 모든 종속성을 설치합니다. 이 동작을 비활성화하려면 recursive-install 설정을 false로 설정하세요.
요약#
| 명령어 | 의미 |
|---|---|
pnpm i --offline | 스토어에서만 오프라인으로 설치 |
pnpm i --frozen-lockfile | pnpm-lock.yaml이 업데이트되지 않음 |
pnpm i --lockfile-only | 오직 pnpm-lock.yaml만 업데이트됨 |
의존성 필터링 옵션#
기존 lockfile이 없으면 pnpm은 lockfile을 생성해야 하며, 이 lockfile은 종속성 필터링과 관계없이 일관되어야 합니다. 따라서 lockfile이 없는 디렉터리에서 pnpm install --prod를 실행해도 개발 종속성은 여전히 해석되며, 해석에 실패하면 오류가 발생합니다. 이 규칙의 유일한 예외는 link: 종속성입니다.
--frozen-lockfile이 없으면 pnpm은 file: 종속성의 오래된 정보를 확인하므로, file:의 대상이 제거된 환경에서 --frozen-lockfile 없이 pnpm install --prod를 실행하면 오류가 발생합니다.
--prod, -P#
- 기본값: false
- 유형: Boolean
true이면 pnpm은 devDependencies에 나열된 패키지를 설치하지 않으며, 이미 설치되어 있는 경우 제거합니다.
false이면 pnpm은 devDependencies 및 dependencies에 나열된 모든 패키지를 설치합니다.
--dev, -D#
오직 devDependencies만 설치되며, dependencies는 이미 설치되어 있는 경우 제거됩니다.
--no-optional#
optionalDependencies는 설치되지 않습니다.
옵션#
--force#
의존성 강제 재설치: 저장소에서 수정된 패키지를 다시 가져오고, 호환되지 않는 pnpm 버전에서 생성된 lockfile 및 모듈 디렉터리를 다시 만듭니다. 현재 환경(cpu, os, arch)을 만족하지 않더라도 모든 optionalDependencies를 설치합니다.
--offline#
- 기본값: false
- 유형: Boolean
true이면 pnpm은 스토어에 이미 있는 패키지만 사용합니다.
로컬에서 패키지를 찾을 수 없으면 설치가 실패합니다.
--prefer-offline#
- 기본값: false
- 유형: Boolean
true이면 캐시된 데이터의 최신 여부 확인을 건너뛰지만, 누락된 데이터는 서버에 요청합니다. 완전한 오프라인 모드를 강제하려면 --offline을 사용하세요.
--no-lockfile#
pnpm-lock.yaml 파일을 읽거나 생성하지 않습니다.
--lockfile-only#
- 기본값: false
- 유형: Boolean
이 옵션을 사용하면 pnpm-lock.yaml과 package.json만 업데이트합니다. node_modules 디렉터리에는 아무것도 기록되지 않습니다.
--fix-lockfile#
깨진 lockfile 항목을 자동으로 수정합니다.
--frozen-lockfile#
- 기본값:
- CI가 아닌 경우: false
- CI의 경우: lockfile이 있으면 true
- 유형: Boolean
값이 true이면 pnpm은 lockfile을 생성하지 않으며, lockfile이 매니페스트와 동기화되지 않았거나 / 업데이트가 필요하거나 lockfile이 없으면 설치에 실패합니다.
이 설정은 CI environments에서 기본적으로 true입니다. 다음 코드는 CI 환경을 감지하는 데 사용됩니다.
exports.isCI = !!(
env.CI || // Travis CI, CircleCI, Cirrus CI, GitLab CI, Appveyor, CodeShip, dsari
env.CONTINUOUS_INTEGRATION || // Travis CI, Cirrus CI
env.BUILD_NUMBER || // Jenkins, TeamCity
env.RUN_ID || // TaskCluster, dsari
exports.name ||
false
)
--merge-git-branch-lockfiles#
모든 git branch lockfile을 병합합니다. git 브랜치 lockfile에 대해 자세히 알아보세요.
--reporter=<name>#
- 기본값:
- TTY stdout의 경우: default
- TTY가 아닌 stdout의 경우: append-only
- 유형: default, append-only, ndjson, silent
터미널에 설치 진행률에 대한 디버그 정보를 기록할 기록자를 선택할 수 있습니다.
- silent - 치명적인 오류를 포함하여 콘솔에 아무것도 출력하지 않습니다
- default - stdout이 TTY일 때의 기본 리포터
- append-only - 출력이 항상 끝에 추가됩니다. 커서 조작이 수행되지 않습니다.
- ndjson - 가장 상세한 리포터입니다. 모든 로그를 ndjson 형식으로 출력합니다
출력되는 정보의 유형을 변경하려면 loglevel 설정을 사용하세요.
--use-store-server#
- 기본값: false
- 유형: Boolean
위험
사용 중단된 기능
백그라운드에서 스토어 서버를 시작합니다. 스토어 서버는 설치가 완료된
후에도 계속 실행됩니다. 스토어 서버를 중지하려면 pnpm server stop을 실행하세요
--shamefully-hoist#
- 기본값: false
- 유형: Boolean
기존 npm이나 yarn과 유사한 평탄한 node_modules 구조를 생성합니다.
경고: 이 방법은 강력히 권장하지 않습니다.
--ignore-scripts#
- 기본값: false
- 유형: Boolean
프로젝트 package.json 및 해당 종속성에 정의된 스크립트를 실행하지 않습니다.
--filter <package_selector>#
--resolution-only#
의존성 해석을 다시 실행합니다: 피어 의존성 문제를 출력할 때 유용합니다.
--cpu=<name>#
버전 10.14.0에서 추가됨
설치할 네이티브 모듈의 CPU 아키텍처를 재정의합니다. 허용되는 값은 process.arch에서 파생된 package.json의 cpu 필드와 동일합니다.
--os=<name>#
버전 10.14.0에서 추가됨
설치할 네이티브 모듈의 OS를 재정의합니다. 허용되는 값은 package.json의 os 필드와 동일하며, 이는 process.platform에서 파생됩니다.
--libc=<name>#
버전 10.14.0에서 추가됨
설치할 네이티브 모듈의 libc를 재정의합니다. 허용되는 값은 package.json의 libc 필드와 동일합니다.