이슈를 마주쳤을 때, 구글링을 하다보면,
가끔 npm ci를 사용하라는 솔루션을 만나고는 했다.
오늘은 npm ci에 대해 좀 더 알아보고자 한다.
npm ci에서 ci는 clean-install을 뜻한다고 한다.
여러 작업자가 함께 작업하는 CI 환경이나 배포(deploy), 테스트 등의 환경에서
다른 환경과 같은 결과물을 보기 위해 주로 사용한다고 한다.
(lock 파일을 기준으로 설치하기 때문에)
npm ci는 npm install과는 다르게 package-lock.json이 존재하는 환경에서만 실행 가능하다.
만약 package-lock.json파일이 package.json파일과 다른 의존성을 가지고 있다면,npm ci는 package-lock.json을 업데이트하는 대신 error와 함께 종료된다.
만약 node_modules가 이미 존재한다면, npm은 자동으로 이 폴더를 먼저 비우고 새로 설치한다.
가끔 npm install은 package-lock.json파일을 업데이트 하곤 하는데,npm ci는 package-lock.json파일이나 package.json파일을 수정하지 않는다고 한다.