NPM v12, 향후 파괴적 변경 예정

발행: (2026년 6월 10일 AM 06:01 GMT+9)
4 분 소요

Source: Hacker News

다음 npm 메이저 버전인 v12에서는 npm install에 보안 관련 기본값 변경이 도입됩니다. 이러한 모든 변경 사항은 현재 npm 11.16.0 이상에서 경고 형태로 제공되므로, 업그레이드 전에 미리 준비할 수 있습니다. v12는 2026년 7월에 출시될 예정입니다.

각 변경 사항은 오늘 자동으로 실행되는 npm install 동작을 명시적으로 선택하도록 바꿉니다:

allowScripts 기본값이 꺼짐: npm install은 프로젝트에서 명시적으로 허용하지 않는 한, 의존성의 preinstall, install, postinstall 스크립트를 실행하지 않습니다. 여기에는 네이티브 node-gyp 빌드도 포함됩니다(예: binding.gyp 파일만 있고 명시적인 설치 스크립트가 없어도 npm이 암시적으로 node-gyp rebuild를 실행하므로 차단됩니다). Git, 파일, 링크 의존성의 prepare 스크립트도 동일하게 차단됩니다. 차단될 항목을 확인하려면 npm approve-scripts --allow-scripts-pending를 실행하세요. 그런 다음 신뢰하는 패키지는 npm approve-scripts로 허용하고, 나머지는 npm deny-scripts로 차단합니다. 생성된 허용 목록은 package.json에 기록되며 커밋해야 합니다. 설치 과정에서 스크립트가 실행된다면 npm 11.16.0+에서 경고를 확인할 수 있습니다.

--allow-git 기본값이 none: npm install--allow-git 옵션으로 명시적으로 허용하지 않는 한 Git 의존성(직접 또는 전이적)을 해결하지 않습니다. 이는 Git 의존성의 .npmrc가 Git 실행 파일을 재정의할 수 있던 코드 실행 경로를 차단합니다(--ignore-scripts 사용 시에도 마찬가지). 이 변경은 2026‑02‑18에 이전에 발표되었으며 npm 11.10.0+에서 사용할 수 있습니다.

--allow-remote 기본값이 none: npm install--allow-remote 옵션으로 명시적으로 허용하지 않는 한 원격 URL(예: https tarball)에서 의존성을 해결하지 않습니다(직접 또는 전이적). 이 플래그는 npm 11.15.0+에서 제공됩니다. 관련된 --allow-file--allow-directory 플래그는 v12에서 기본값이 변경되지 않습니다.

준비 방법

npm 11.16.0 이상으로 업그레이드한 뒤 일반적인 설치를 실행하고 경고를 검토하세요. npm approve-scripts --allow-scripts-pending를 사용해 스크립트를 포함한 패키지를 확인하고, 신뢰하는 패키지는 승인한 뒤 package.json을 커밋합니다. 이후 업그레이드하면 승인한 스크립트만 계속 실행되고, 승인되지 않은 스크립트는 중단됩니다. 자세한 내용은 다음 문서에서 확인할 수 있습니다: npm approve-scripts, npm deny-scripts, 그리고 allow-scripts 설정 (npx 및 전역 설치에 적용). 의견과 질문은 우리 커뮤니티 토론에서 공유해 주세요.

0 조회
Back to Blog

관련 글

더 보기 »

생물학적 진화와 정보 획득

A few weeks ago we lookedhttps://www.construction-physics.com/p/information-and-technological-evolution at a simulation of technological evolutionhttps://sites....

단순 HTML의 놀라운 효과 (2021)

I've told this story at conferences - but due to the general situation I thought I'd retell it here. A few years ago I was doing policy research in a housing be...