CLI & Node.js 설정

CLI 설정#

[no-]color#

  • 기본값: auto
  • 유형: auto, always, never

출력의 색상을 제어합니다.

  • auto - 표준 출력이 터미널 또는 TTY일 때 출력에 색상을 사용합니다.
  • always - 터미널과 파이프의 차이를 무시합니다. 이 값이 필요한 경우는 거의 없으며; 대부분의 경우 리디렉션된 출력에 색상 코드가 필요하다면 pnpm 명령에 --color 플래그를 대신 전달하여 색상 코드를 사용하도록 강제할 수 있습니다. 기본 설정이 거의 항상 원하는 값입니다.
  • never - 색상을 끕니다. --no-color가 사용하는 설정입니다.

loglevel#

  • 기본값: info
  • 유형: debug, info, warn, error

지정한 수준 이상의 모든 로그가 표시됩니다. 대신 --silent를 전달하여 모든 출력 로그를 끌 수 있습니다.

useBetaCli#

  • 기본값: false
  • 타입: Boolean

CLI의 베타 기능을 활성화하는 실험적 옵션입니다. 즉, CLI 기능에 호환성을 깨는 변경 사항이나 잠재적인 버그가 생길 수 있습니다.

recursiveInstall#

  • 기본값: true
  • 타입: Boolean

이 옵션을 활성화하면 pnpm install의 기본 동작이 pnpm install -r의 동작이 되어, 모든 워크스페이스 또는 하위 디렉터리 패키지에 대해 설치가 수행됩니다.

그렇지 않으면 pnpm install은 현재 디렉터리의 패키지만 빌드합니다.

engineStrict#

  • 기본값: false
  • 타입: Boolean

이 옵션을 활성화하면 pnpm은 현재 Node 버전과 호환되지 않는다고 명시한 패키지를 설치하지 않습니다.

이 설정과 관계없이 프로젝트(종속성이 아님)가 engines 필드에 호환되지 않는 버전을 지정하면 설치는 항상 실패합니다.

npmPath#

  • 유형: path

게시 같은 일부 작업에 pnpm이 사용하는 npm 바이너리의 위치입니다.

pmOnFail#

추가된 버전: v11.0.0

  • 기본값: download
  • 유형: download, error, warn, ignore

선언된 pnpm 버전과 실행 중인 pnpm 버전이 일치하지 않을 때의 onFail 동작을 재정의하며, packageManager 필드와 devEngines.packageManager 모두에 적용됩니다.

  • download — 선언된 pnpm 버전을 다운로드하여 실행합니다 (기본값이며 이전의 managePackageManagerVersions: true 동작과 같습니다).
  • error — 명령을 실패시킵니다 (이전의 packageManagerStrictVersion: true와 동일).
  • warn — 경고를 출력하되 계속 진행합니다 (이전의 packageManagerStrict: false 또는 COREPACK_ENABLE_STRICT=0과 동일).
  • ignore — 검사를 완전히 건너뜁니다 (이전의 managePackageManagerVersions: false와 동일). 버전 관리를 asdf, mise, Volta 같은 외부 도구가 처리할 때 유용합니다.

CLI 플래그, 환경 변수 또는 pnpm-workspace.yaml로 설정할 수 있습니다:

pnpm install --pm-on-fail=ignore
pnpm_config_pm_on_fail=ignore pnpm install
pnpm-workspace.yaml
pmOnFail: ignore

이 설정은 제거된 managePackageManagerVersions, packageManagerStrict, packageManagerStrictVersion 설정과 COREPACK_ENABLE_STRICT 환경 변수를 대체합니다.

마이그레이션:

제거된 설정 다음으로 대체
managePackageManagerVersions: true pmOnFail: download (기본값)
managePackageManagerVersions: false pmOnFail: ignore
packageManagerStrict: false pmOnFail: warn
packageManagerStrictVersion: true pmOnFail: error
COREPACK_ENABLE_STRICT=0 pmOnFail: warn

이 설정을 변경하지 않고 특정 버전의 pnpm을 실행하려면 pnpm with도 참조하세요.

ignoreWorkspaceRootCheck#

  • 기본값: false
  • 타입: Boolean

이 옵션을 활성화하면 프로젝트의 루트 폴더에서 pnpm install/pnpm add를 실행할 때 -w/--ignore-workspace-root-check를 제공하지 않아도 더 이상 오류가 발생하지 않습니다.

Node.js 설정#

nodeVersion#

  • 기본값: node -v가 반환하는 값에서 v 접두사를 제외한 값
  • 유형: exact semver version (not a range)

패키지의 engines 설정을 확인할 때 사용할 Node.js 버전입니다.

프로젝트 기여자가 호환되지 않는 새 종속성을 추가하지 못하게 하려면 nodeVersion과 engineStrict를 프로젝트 루트의 pnpm-workspace.yaml 파일에서 사용하세요:

nodeVersion: 12.22.0
engineStrict: true

이렇게 하면 누군가 Node.js v22를 사용하더라도 Node.js v12.22.0을 지원하지 않는 새 종속성을 설치할 수 없습니다.

runtimeOnFail#

추가된 버전: v11.0.0

  • 기본값: undefined
  • 유형: download, error, warn, ignore

재정의 항목은 onFail 필드로, devEngines.runtime(및 engines.runtime)에 속하며 루트 프로젝트의 package.json에 있습니다. 매니페스트에 작성된 것과 다른 로컬 동작을 원할 때 유용합니다 — 예를 들어, 매니페스트가 onFail: "warn"으로 설정되어 있어도 pnpm이 선언된 런타임을 다운로드하도록 강제할 수 있습니다:

pnpm-workspace.yaml
runtimeOnFail: download

nodeDownloadMirrors#

추가된 버전: v11.0.0

  • 기본값: undefined
  • 유형: Record<string, string>

사용자 지정 Node.js 다운로드 미러를 pnpm-workspace.yaml에서 구성합니다. 키는 릴리스 채널입니다(release, rc, nightly, v8-canary 등) 값은 기본 URL입니다.

다음은 중국의 미러에서 Node.js를 다운로드하도록 pnpm을 구성하는 방법의 예입니다:

nodeDownloadMirrors:
  release: https://npmmirror.com/mirrors/node/
  rc: https://npmmirror.com/mirrors/node-rc/
  nightly: https://npmmirror.com/mirrors/node-nightly/