본문 바로가기

Node.js

패키지 잠금

  • package.json에 이미 모든 의존성에 대한 데이터가 있는데 왜 package-lock.json이 추가로 필요할까?
  • 이유는 package.json에 버전을 설정할 때 특정 버전이 아니라 버전 범위를 설정하면 패키지를 설치하는 시점에 따라 다른 버전이 설치되기 때문이다.
  • npm에 등록된 패키지들은 엄격하게 관리가 되고 있지 않는 오픈소스가 대부분이다.
  • 하위 호환에 대한 검증을  npm에서도 진행하지 않기 때문에 패치 버전으로 변경되었는데도 동작하지 않는 경우가 생각보다 굉장히 많다.
  • 설치 시 올바르게 동작하는 버전을 고정하면 된다.
  • package-lock.json에 패키지의 의존성 트리 정보를 저장해두고 설치 시 package.json이 아니라 package-lock.json을 확인하고 설치한다. 이를 패키지 잠금이라고 한다.
  • 의존성 트리를 확인하는 명령어
npm ls
npm ls --depth=1 : 1단계 의존성
npm ls --depth=2 : 2단계 의존성. 의존성 트리가 깊어지면 서로 다른 패키지인데 같은 패키지를 의존성으로 가지는 경우가 생기게 된다. 중복이 생기면 하나만 받고 나머지는 내려받지 않는다.

 

728x90

'Node.js' 카테고리의 다른 글

npx  (0) 2023.08.14
npm  (0) 2023.08.13
익스프레스 프레임워크 사용하  (0) 2023.08.13
간단한 서버 구현하기  (0) 2023.08.13
Formdata  (0) 2023.06.29