본문 바로가기

Node.js

[Node.js] npm과 yarn

npm과 yarn은 JavaScript 패키지 관리 도구로 프로젝트의 의존성을 관리하고 패키지를 설치하는데 사용되며 주로 Node.js 프로젝트에서 사용됩니다.

npm은 Node.js의 공식 패키지 관리 도구로서, Node.js를 설치하면 함께 제공됩니다. yarn은 Facebook에서 개발한 대체 도구로, npm과 비슷한 목적으로 사용됩니다.

 

  1. 설치 속도:
    • npm: npm은 패키지를 설치할 때 인터넷 연결 및 패키지 종속성 체인을 다시 계산하는 데 시간이 소요됩니다.
    • yarn: yarn은 패키지를 더 빠르게 설치할 수 있는 캐싱 메커니즘을 갖추고 있습니다. 이미 다운로드한 패키지를 캐시에 저장하여 동일한 패키지를 다시 설치할 때 더 빠르게 진행됩니다.
  2. 보안 및 안정성:
    • npm: npm은 패키지의 보안 검사 및 신뢰성을 위한 내장 기능을 갖추고 있습니다.
    • yarn: yarn도 npm과 마찬가지로 패키지 신뢰성 및 보안을 고려하여 설계되었습니다. yarn은 yarn audit 명령을 통해 보안 취약점을 검사할 수 있습니다.
  3. 패키지 락 파일:
    • npm: package-lock.json 파일을 사용하여 프로젝트의 의존성을 정확하게 잠급니다.
    • yarn: yarn.lock 파일을 사용하여 의존성을 정확하게 잠급니다. yarn.lock은 더 정확한 의존성 해결을 가능케 하며, 동일한 의존성 트리를 여러 환경에서 사용할 때 일관성을 제공합니다.
  4. 명령어 문법:
    • npm: npm 명령어는 npm install <package>과 같이 사용됩니다.
    • yarn: yarn 명령어는 yarn add <package>과 같이 사용됩니다. 일부 명령어는 npm과 유사하지만 일부 차이가 있습니다.
  5. 자동 패키지 해결:
    • npm: npm 5 버전 이상에서는 패키지 버전 충돌을 자동으로 해결합니다.
    • yarn: yarn은 처음부터 패키지 버전 충돌을 피하기 위해 설계되었습니다.
  6. 오프라인 모드:
    • npm: npm 5 버전 이상에서는 오프라인에서도 패키지 설치가 가능하지만, yarn은 처음부터 오프라인 모드를 지원합니다.