본문으로 건너뛰기
버전: 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

  • 기본값:
    • If NODE_ENV is production: true
    • If NODE_ENV is not production: false
  • Type: Boolean

If set, pnpm will ignore NODE_ENV and instead use this boolean value for determining the environment.

If true, pnpm will not install any package listed in devDependencies and will remove those insofar they were already installed. If false, pnpm will install all packages listed in devDependencies and dependencies.

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

warning

Filter currently does not work properly with v8 default config, you have to implicitly set dedupe-peer-dependents to false to have that work. For more info and progress please refer to #6300

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

--resolution-only

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