npm v12의 예정된 호환성 깨짐 변경
2 hours ago
1
- npm v12에서 npm install의 보안 관련 기본값이 자동 실행·해석에서 명시적 허용 방식으로 바뀌며, npm 11.16.0 이상에서 경고로 사전 확인 가능
- allowScripts 기본값이 꺼짐으로 바뀌어, 명시적으로 허용하지 않은 의존성의 preinstall, install, postinstall 스크립트와 암묵적 node-gyp rebuild, git·file·link 의존성의 prepare 스크립트 실행 차단
- npm approve-scripts --allow-scripts-pending로 차단될 패키지를 확인하고, npm approve-scripts와 npm deny-scripts로 허용·차단을 정한 뒤 생성된 allowlist를 package.json에 커밋해야 함
- --allow-git 기본값이 none으로 바뀌어, --allow-git로 명시적으로 허용하지 않은 직접·전이 Git 의존성 해석 중단
- Git 의존성의 .npmrc가 --ignore-scripts 사용 중에도 Git 실행 파일을 덮어쓸 수 있는 코드 실행 경로 차단
- --allow-remote 기본값이 none으로 바뀌어, --allow-remote로 명시적으로 허용하지 않은 https tarball 같은 원격 URL 의존성 해석 중단
- --allow-file과 --allow-directory의 기본값은 npm v12에서 변경 없음
- 준비 절차는 npm 11.16.0 이상으로 업그레이드한 뒤 일반 설치를 실행해 경고를 검토하고, 신뢰하는 패키지만 승인하며, 업그레이드 후 승인된 스크립트만 계속 실행되는 방식
- 관련 문서: npm approve-scripts, npm deny-scripts, allow-scripts config
-
Homepage
-
Tech blog
- npm v12의 예정된 호환성 깨짐 변경