pnpm은 약간의 호환성 부담을 감수하고 큰 디스크 절약과 엄격한 의존성 검사를 얻는 선택이야. 아래 규칙을 지키면 장점이 부담보다 크게 남아.
package.json의 packageManager로 pnpm 버전을 고정해. pnpm 버전이 다르면 만들어지는 lockfile도 달라질 수 있어. 버전을 고정하면 환경 차이에서 생기는 '내 컴퓨터에서는 된다' 문제를 줄여.
CI에서는 --frozen-lockfile을 써. npm ci와 같은 역할로 빠르고 엄격하게 설치하며 lockfile이 달라지면 실패해.
가끔 pnpm store prune을 실행해. 전역 저장소에는 어느 프로젝트에서도 더 이상 참조하지 않는 패키지가 쌓여. 매달 정리하면 몇 GB를 되찾을 수도 있어.
신뢰하는 패키지에만 lifecycle script를 허용해. v10이 이를 기본 차단하는 것은 올바른 선택이야. esbuild나 sharp처럼 실제로 필요한 패키지만 package.json의 pnpm.allowedDeprecatedVersions와 pnpm.onlyBuiltDependencies로 명시적으로 허용해.
엄격함을 받아들여. pnpm이 빠진 의존성을 지적하면 pnpm을 우회하지 말고 선언을 고쳐. 지금 잡은 오류 하나가 미래의 운영 장애 하나를 막는 셈이야.