본문으로 건너뛰기
버전: Next

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

If true, pnpm will use only packages already available in the store. If a package won't be found locally, the installation will fail.

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

--merge-git-branch-lockfiles

Merge all git branch lockfiles. Read more about git branch lockfiles.

--reporter=<name>

  • 기본값:
    • TTY stdout의 경우: default
    • 비 TTY stdout의 경우: append-only
  • 유형: default, append-only, ndjson, silent

Allows you to choose the reporter that will log debug info to the terminal about the installation progress.

  • silent - 치명적인 오류라할지라도 출력이 콘솔에 기록되지 않습니다.
  • default - stdout이 TTY일 때의 기본 리포터입니다.
  • append-only - 출력은 항상 끝에 추가됩니다. 커서 조작이 수행되지 않습니다.
  • ndjson - 가장 장황한 리포터. 모든 로그를 ndjson 형식으로 인쇄합니다.

If you want to change what type of information is printed, use the loglevel setting.

--use-store-server

  • 기본값: false
  • 유형: Boolean

Starts a store server in the background. The store server will keep running after installation is done. To stop the store server, run pnpm server stop

--shamefully-hoist

  • 기본값: false
  • 유형: Boolean

Creates a flat node_modules structure, similar to that of npm or yarn. WARNING: This is highly discouraged.

--ignore-scripts

  • 기본값: false
  • 유형: Boolean

Do not execute any scripts defined in the project package.json and its dependencies.

--filter <package_selector>

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

--resolution-only

버전 8.3.0에 추가됨

Re-runs resolution: useful for printing out peer dependency issues.