본문 바로가기
front/npm

[npm] npm-ci

by juniKang 2022. 7. 27.

npm ci

별칭: clean-install, ic, install-clean, isntall-clean

 

설명 :

이 커맨드는 npm install과 비슷하다. 주로 의존성들을 깨끗하게 인스톨하고 싶은 모든 상황이나 배포, 통합, 테스트 플랫폼 같이 자동적으로 환경을 구성할 때 사용한다. 

 

npm install과 npm ci의 주요 차이점 :

1. 프로젝트가 package-lock.json이나 npm-shrinkwrap.json이 필수로 있어야 한다.

2. package-lock.json과 package.json이 매치되지 않으면, package-lock을 업데이트 하는 대신, 에러가 난다.

3. npm ci는 한번에 전체 프로젝트를 인스톨한다: 각각의 의존성이 이 커맨드로 추가될 수는 없다.

4. 만약 node_modules가 이미 존재하면, npm ci가 인스톨을 시작하기전에 자동으로 제거한다.

5. npm ci는 package.json이나 package-locks의 어떤 부분도 절대로 수정하지 않는다: 인스톨은 기본적으로 고정되어있다.

 

주의 :

만약 --leagacy-peer-deps나 --install-links처럼 의존성 트리를 구성하는데 영향을 줄수 있는 플래그와 함께 npm install을 실행한 package-lock.json파일을 만들었다면,  npm ci에 똑같은 플래그를 제공해야만 한다. 그렇지 않으면 에러가 발생한다. 예를들면, npm config set legacy-peer-deps=true --location=project 와 .npmrc파일을 커밋해라.

 

예제 :

package-lock이 최신 인스톨인지 확인해라:

$ cd ./my/npm/project
$ npm install
added 154 packages in 10s
$ ls | grep package-lock

npm ci를 실행하라

$ npm ci
added 154 packages in 5s

npm install 대신에 npm ci를 사용해서 빌드하도록 Travis를 설정하라.

# .travis.yml
install:
 - npm ci
# keep the npm cache around to speed up installs
cache:
  directories:
  - "$HOME/.npm"

 

'front > npm' 카테고리의 다른 글

[npm] About npm  (0) 2022.07.27

댓글