npm install과 npm ci의 차이점

규갓 God Gyu·2025년 3월 19일

면접질문

목록 보기
97/142

npm install, npm ci(clean-install) 모두 의존성 목록을 설치하는 커맨드, 세부 동작 차이가 있음
npm ci는 npm install에 비해 의존성의 버전을 엄격하게 유지함

npm install은 package.json에 명시된 version range 내에서 다른 버전을 설치할 가능성이 있지만, npm ci는 오직 package-lock.json에 정확하게 표기된 특정 버전을 따름
이로 인해 예기치 않게 다른 버전의 의존성을 설치하는 일을 방지함
더불어 정확히 명시된 버전을 설치하므로 버전을 결정하기 위한 연산을 수행할 필요가 없어 설치 속도에서 유리한 측면

npm install은 package-lock.json을 변경할 가능성이 있지만, npm ci는 절대 변경하지 않음
npm ci 는 의존성 목록의 버전을 변경없이 일관되게 유지할 수 있게 해줌

npm ci는 매번 node_modules를 삭제한 후 설치
이를 통해 이전에 설치된 의존성과의 충돌로 인한 문제 방지
또한 오로지 package-lock.json에 따라 매번 동일한 의존성을 설치할 것을 확실하게 보장

CI/CD환경에서 빌드 과정의 일관성을 보장하기 위한 목적으로 사용되는 경우가 많음

npm ci를 로컬 개발 환경에서도???

가능 but npm ci는 node_modules를 매번 모두 삭제하고 다시 설치하기 때문에 불필요한 시간이 소요될 수 있음
따라서, 로컬에서는 일반적으로 npm install을 사용하고,
CI/CD환경에선 npm ci를 사용하는 경우가 많음
다만, 팀내에서 의존성 버전을 엄격하게 맞추는게 중요하다 판단되면 로컬환경에서도 npm ci를 사용할 수 있음

profile
웹 개발자 되고 시포용

0개의 댓글