npm ci

훈이는못말려·2023년 8월 10일
1
post-thumbnail

프로젝트를 진행하면서 서로의 작업내용을 합칠 때 package-lock.json 파일에서 충돌이 났다.
충돌을 해결하는 도중 npm ci에 대해 알게 되어서 글을 작성하려고 한다.

npm ci

npm ci 명령을 실행하기 전에 프로젝트 디렉토리에 package-lock.json 파일이 있어야 한다.

ci는 clean install을 뜻한다.

npm ci 명령은 Node.js와 npm (Node Package Manager)을 사용하는 상황에서 사용되는 명령어 이다. 이 명령어는 지속적 통합 (Continuous Integration, CI) 및 자동화된 빌드 환경에서 사용되도록 설계되었다.

npm ci를 실행하면 npm은 다음과 같은 작업을 수행한다

  • package-lock.json 파일을 읽어서 설치할 패키지의 정확한 버전을 판단한다. 이 때 npm install 명령어와는 달리 package.json을 보지 않는다.

  • package-lock.json에 명시된 의존성 및 개발 의존성을 node_modules 디렉토리에 설치

  • 설치된 패키지 버전이 package-lock.json에 명시된 버전과 일치하는지 확인한다. 일치하지 않을 경우 npm ci는 오류를 발생시켜 일관되고 재현 가능한 설치를 보장한다.

장점

  • npm cipackage-lock.json 파일을 기반으로 의존성을 설치한다. 이를 통해 정확한 버전과 의존성 그래프를 따라가며 설치하므로, 일관성과 재현 가능성이 높아진다.

  • npm install과 달리 의존성 해결을 수행할 필요가 없으므로 빠른 설치가 가능하다.

해결

npm install

  • 개발 과정 중에 프로젝트에 새로운 의존성을 추가하거나 의존성을 업데이트해야 할 때 사용한다.

  • package.jsonpackage-lock.json 파일에 명시된 의존성 버전을 기반으로 의존성을 설치한다.

  • 패키지 버전 간에 작은 업데이트나 수정이 있는 경우에도 적절하게 처리g다.

npm ci

  • 보통 CI/CD 파이프라인, 자동화된 빌드, 배포 등에서 사용된다.

  • package-lock.json 파일의 의존성 목록과 버전을 정확하게 따라가며, 더 엄격한 의존성 해결을 한다.

  • 일관된 의존성 설치와 재현 가능한 빌드 환경을 보장한다.

  • 개발자가 의존성을 직접 추가하거나 업데이트할 필요가 없는 경우에 유용한다.


개발 과정에서 패키지를 설치할 때는 npm install 명령을 사용하고, 프로젝트를 클론하거나 다른 환경에서 동일한 의존성을 설치해야 할 때는 npm ci 명령을 사용하는 것이 좋다.




참고
https://velog.io/@yu00hun/npm-yarn

0개의 댓글