npm install vs ci

ClassBinu·2024년 6월 6일

F-lab

목록 보기
49/65

npm ci

ci: continuous integration

package-lock.json이나 npm-shrinkwrap.json 에 정확히 명시된 버전으로만 패키지를 설치

이 명령어는 기존의 node_modules 디렉토리를 삭제하고, package-lock.json에 명시된 버전과 구조대로 새롭게 패키지를 설치합니다.

즉 정확한 의존성을 설치

일반적으로 더 빠름(메타데이터 재계산, 버전 호환성 검사 안하기 때문에)

npm install

package.json에 명시된 의존성을 기반으로 새로운 패키지를 계산하고 설치할 때 일부 최신 버전 선택

근데 npm install도 만약 package-lock.json이 있다면 그걸 우선 체크하지 않아?

버전 업데이트 허용: npm install은 package-lock.json 파일에 명시된 패키지 버전을 기본적으로 설치하지만, package.json 파일에 더 새로운 버전의 범위가 명시되어 있을 경우, 이를 업데이트하고 package-lock.json 파일도 업데이트할 수 있습니다. 즉, 의존성 관리에 있어서 더 유연합니다.

부분 설치 지원: npm install은 특정 패키지만을 명령어와 함께 지정하여 설치할 수 있습니다 (예: npm install [package-name]). 이 경우, 해당 패키지와 관련된 의존성만 업데이트되며, 다른 의존성은 package-lock.json에 명시된 대로 유지됩니다.

반면, npm ci는 항상 package-lock.json 또는 npm-shrinkwrap.json 파일에 정확히 명시된 패키지와 버전만을 설치합니다. 이 명령어는 package.json의 의존성 범위를 무시하고, 어떠한 패키지도 업그레이드하거나 변경하지 않습니다. 그리고 특정 패키지만을 선택적으로 설치하는 것은 지원하지 않습니다.

일관된 환경을 유지하고자 할 때 npm ci가 더 적합할 수 있고, 개발 과정 중 특정 패키지의 추가나 업데이트가 필요할 때는 npm install이 더 유용할 수 있습니다.

0개의 댓글