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

pnpm install

별칭: i

pnpm install은 프로젝트 내 모든 의존성 패키지들을 설치하는데에 사용됩니다.

CI 환경에서, lockfile이 있지만 업데이트가 필요한 경우 설치가 실패합니다.

워크스페이스내에서, pnpm install 은 모든 프로젝트의 모든 의존성을 설치합니다. 이 동작을 비활성화하려면, recursive-install설정을 false로 설정하세요.

요약

명령어의미
pnpm i --offline스토어에서만 오프라인으로 설치
pnpm i --frozen-lockfilepnpm-lock.yaml 이 업데이트되지 않음
pnpm i --lockfile-onlypnpm-lock.yaml 만 업데이트됨

옵션

--force

Force reinstall dependencies: refetch packages modified in store, recreate a lockfile and/or modules directory created by a non-compatible version of pnpm. Install all optionalDependencies even they don't satisfy the current environment(cpu, os, arch).

--offline

  • 기본값: false
  • 유형: Boolean

true이면 pnpm은 스토어에서 이미 사용 가능한 패키지만 사용합니다. 패키지를 로컬에서 찾을 수 없으면 설치가 실패합니다.

--prefer-offline

  • 기본값: false
  • 유형: Boolean

true이면 캐시된 데이터에 대한 부실 검사가 무시되지만, 누락된 데이터는 서버에서 요청됩니다. 전체 오프라인 모드를 강제 실행하려면, --offline을 사용하세요.

--prod, -P

pnpm은 devDependencies 에 나열된 패키지를 설치하지 않으며 NODE_ENV 환경 변수 가 프로덕션으로 설정된 경우 이미 설치된 패키지 제거합니다. 이 플래그를 사용하여 pnpm이 NODE_ENV 를 무시하고 대신 이 플래그에서 프로덕션 상태를 가져오도록 지시합니다.

--dev, -D

devDependencies 만 설치되고 NODE_ENV에 관계없이 이미 설치된 dependencies만 제거됩니다.

--no-optional

optionalDependencies 가 설치되지 않습니다.

--lockfile-only

  • 기본값: false
  • 유형: Boolean

사용하면 pnpm-lock.yamlpackage.json만 업데이트합니다. node_modules 디렉토리에는 아무것도 기록되지 않습니다.

--fix-lockfile

깨진 lockfile 항목을 자동으로 수정합니다.

--frozen-lockfile

  • 기본값:
    • 비 CI의 경우: false
    • CI의 경우: true, lockfile이 있는 경우
  • 유형: Boolean

true 인 경우, pnpm은 lockfile을 생성하지 않고 lockfile 이 매니페스트와 동기화되지 않았거나 업데이트가 필요하거나 lockfile이 없는 경우 설치에 실패합니다.

이 설정은 CI 환경에서 기본적으로 true 입니다. 다음 코드는 CI 환경을 감지하는 데 사용됩니다.

https://github.com/watson/ci-info/blob/44e98cebcdf4403f162195fbcf90b1f69fc6e047/index.js#L54-L61
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
)

--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>

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