BackEnd/Node.js

[Node.js] npm install vs npm ci 차이점

푸고배 2022. 8. 9. 22:24

npm(Node Package Manager)이란?

프로젝트에 필요한 라이브러리를 다운로드 또는 관리 할 수 있도록 해주는 프로그램이다.

일반적으로 npm을 사용하게 되면(npm init 시) package.json 파일을 프로젝트 폴더 바로 아래에서 생성하여 모듈과 해당 모듈의 버전을 관리한다. 요즘 CLI를 통해서 프로젝트를 생성하게 되면 기본적으로 함께 포함되어 있다. 또는 그렇지 않은 경우 npm init을 통해 기본 세팅이 가능하다.

 

npm install이란?

npm install [<패키지 사양> ...]

npm install, 또는 npm i는 종속성을 설치하는데 사용된다.

  • 모든 종속성을 설치한다.
  • 종속성 버전을 지정할 때 ^ 또는 ~를 사용하는 경우 npm이 지정한 버전과 동일한 버전을 설치하지 못할 수 있다.
  • 'npm install'은 새 종속성을 설치할 때와 같은 변경 사항이 있을 때 package-lock.json을 업데이트할 수 있다.

 

npm ci란?

npm ci는 다음과 같은 작업을 수행한다.

  • node_modules 폴더를 삭제하여 깨끗한 상태를 보장한다.
  • 그러면 package-lock.json에서 정확한 버전의 모든 종속성을 설치한다.
  • npm install과는 달리 npm ci는 package-lock.json을 수정하지 않는다.
  • 그러나 프로젝트에 package-lock.json 파일이 있어야 한다.
  • 이 파일이 없으면 npm ci가 작동하지 않으므로 대신 npm install을 사용해야 한다.
  • npm ci를 사용하면 안정적인 빌드를 얻을 수 있다.
  • 이 기능은 Jenkins 또는 GitLab CI와 같은 연속 통합 도구에서 실행할 때 유용하다.

 

npm install vs npm ci : 어느 것을 사용해야 하는 가?

npm v6 이상인 경우 :

npm install을 사용하여 새 종속성을 설치하거나 기존 종속성(예: 버전 1에서 버전 2로 변경)을 업데이트 한다.

연속 통합을 실행하거나 package-lock.json을 수정하지 않고 종속성을 설치하려면 npm ci를 사용한다.

 

npm v5 이하 버전인 경우 :

종속성을 설치하거나 업데이트 하는데 npm install만 사용이 가능하다.

최신 npm 버전으로 업그레이드 해보자.

npm ci 외에도 npm audit 명령어가 있어 종속성의 보안 취약점을 쉽게 파악할 수 있고 수정할 수 있다.

 

npm ci는 안정적으로 작업을 수행하므로, 가능하면 npm ci를 사용하는 것이 좋으며, npm install은 새로운 종속성을 설치하거나 기존 종속성을 업데이트할 때 사용하는 것이 좋다.

 

 


Reference

 

[NPM] npm install 할 때 --save 옵션을 함께 입력하는 이유? 하지만 이제는 사용하지 않아도 되는 이유.

JavaScript 프로젝트를 하게 되면 외부 모듈(라이브러리)을 많이 이용하게 됩니다. 라이브러리를 받기 위해서 npm intstall 과 같은 명령어를 많이 보셨을거에요. 그런데 --save 옵션을 봤지만 정확한 이

xtring-dev.tistory.com

 

npm ci vs. npm install — Which Should You Use in Your Node.js Projects?

And what exactly is the difference?

betterprogramming.pub

 

반응형