npm 은 forgiving — 그래서 대부분 팀이 자기도 모르게 나쁜 습관 들임. 이 룰들이 install '그냥 됨' 팀과 격주 월요일 install 이슈 디버깅하는 팀 가름.
항상 package-lock.json commit. 팀원이 너랑 다른 lockfile 가지면 다른 버그 가짐. lockfile 이 install — commit.
모든 CI/CD 파이프라인에서 npm ci 사용. npm install 은 더 나은 resolution 찾을 때 lockfile 업데이트; CI 에서 잘못된 동작, install 은 deterministic 해야 함.
npm audit 정기적으로. critical 취약점에 fail 하는 매주 cron 또는 CI job 추가. npm 에 대한 supply-chain 공격 진짜고 커지는 위험.
일회용 도구엔 npx 사용. 글로벌 install 패키지는 정비 부담; npx create-react-app 한 번 작동하고 흔적 안 남김.
라이브러리는 deps 핀, 앱은 range. 라이브러리 ship 하면 정확한 버전 핀해서 consumer 안 깨뜨림. 앱 ship 하면 range 해서 보안 패치 흘러들어감.
production 에 dev deps ship 안 함. production Docker 빌드의 npm install --omit=dev 가 이미지 크기 작게 + 공격 surface 감소.