Web Basic · Package Management

npm 의존성 그래프와 잠금 파일

패키지 관리는 라이브러리를 설치하는 명령 모음이 아니라, 직접 의존성과 전이 의존성, 버전 범위, 잠금 파일을 통해 같은 실행 환경을 재현하는 일이다.

01

의존성 선언

앱 코드가 직접 import하는 패키지만 dependencies 또는 devDependencies에 명시한다.

02

버전 해석

^와 ~ 범위가 실제 설치 후보를 어떻게 넓히는지 확인한다.

03

잠금 고정

lockfile은 전이 의존성까지 같은 버전으로 설치되게 만든다.

04

업데이트 검증

패키지 갱신 후 테스트, 빌드, 번들 크기, 보안 알림을 함께 확인한다.

dependencies
런타임 필요 브라우저나 서버 실행 중 실제로 필요한 패키지
번들 포함 여부 확인
devDependencies
개발 도구 테스트, 빌드, 린트, 타입 검사 도구
배포 이미지에서 제외 가능
peerDependencies
호스트 버전 요구 플러그인이나 라이브러리가 상위 앱의 React 등과 맞아야 할 때
버전 충돌의 주요 원인
lockfile
재현 가능한 설치 CI와 팀원이 같은 dependency tree를 설치
앱 저장소에서는 커밋 대상

분류 · 중복 · 엔진 점검

분류 실행 패키지와 개발 도구가 올바른 영역에 있다.
중복 동일 목적 패키지가 여러 개 들어와 번들을 키우지 않는다.
엔진 Node 버전과 패키지 매니저 버전이 명시돼 있다.
업데이트 자동 갱신 뒤 회귀 테스트와 changelog 확인이 붙는다.