11/05/2023

npm install vs. npm ci

npm install vs. npm ci

npm install과 npm ci 둘 다 NodeJS 기반의 패키지를 설치하고 버전을 관리하는 명령이지만 차이점이 분명히 존재한다. 차이점에 대해 자세히 알기 전에 package.json과 package-lock.json 파일에 대해서 알아야 한다. 

package.json은 프로젝트에 대한 메타 데이터와 프로젝트에서 사용 중인 NPM 패키지에 대한 정보를 담은 파일이다. 중요한 점은 package.json은 버전 범위를 따르기에 NPM 패키지의 정확한 버전이 다를 수 있다. 즉, 정확하게 동일한 버전을 설치하지 않으면 문제가 생길 수 있다. 이 때문에 package-lock.json이 NPM 패키지의 정확한 버전까지 명시한다.


npm install

npm install 명령은 먼저 package-lock.json을 확인해서 의존성의 정확한 버전을 확인 후 package.json에 명시된 모든 의존성을 설치한다. 만약 패키지를 설치하거나 삭제해서 package.json 파일이 수정되면 package-lock.json 파일도 수정된다.


npm ci

npm ci 명령은 package-lock.json 파일이 반드시 존재해야 하며 오직 이 파일을 기반으로 정확한 버전의 의존성을 설치하며 package.json 파일은 버전 일치 확인용으로 사용된다. 다시 말해, 두 파일의 버전이 일치하지 않으면 오류가 발생한다. npm ci는 npm install과 달리 package-lock.json 파일을 절대 수정하지 않는다. 이러한 특성 덕분에 설치할 정확한 버전을 파악해야 하는 npm install과 달리 npm ci는 보다 의존성을 보다 빠르게 설치한다.

Update: 2023.11.05

댓글 없음:

댓글 쓰기