본문 바로가기
카테고리 없음

npm vs yarn

by ウリ김영은 2024. 3. 21.

npm 과 yarn 은 자바스크립트 런타임 환경인 노드의 패키지 관리자입니다.

그리고 CLI를 통해 패키지 설치 및 삭제뿐 아니라 패키지 버전 관리, 의존성 관리도 편리하게 할 수 있습니다.

 

그렇다면 둘의 차이는 뭘까요?

 

1. npm

노드 패키지 매니저(Node Package Manager)의 줄임말로 노드를 설치할 때 자동으로 설치되는 기본 패키지 관리자입니다.


node -v  
npm -v // 버전 확인 => 설치되었는지 확인 가능

npm의 역할

  1. 온라인 플랫폼 : 사람들이 노드 패키지를 만들고, 업로드하고, 공유할 수 있는 공간으로 누구나 온라인 플랫폼(npm 레지스트리)에 게시된 패키지를 사용할 수 있습니다.
  2. 명령 줄 인터페이스(Command-line interface, CLI) : 온라인 플랫폼과 상호 작용하기 위해 명령 줄 인터페이스를 사용하며 패키지 설치 및 제거가 가능합니다.

 

2. yarn

2016년 페이스북에서 개발한 패키지 관리자입니다. 리액트(React)와 같은 프로젝트를 진행하며 겪었던 어려움을 해결하기 위해 개발되었고, npm 레지스트리로와 호환하면서 속도나 안정성 측면에서 npm보다 향상되었습니다.

 


npm install yarn --global

 

 

맥 사용자라면,


brew update  
brew install yarn

 

3. npm과 yarn의 차이점

  1. 속도
  • npm => 패키지를 한 번에 하나씩 순차적으로 설치합니다.
  • yarn => 여러 패키지를 동시에 가져오고 설치하도록 최적화되어 있습니다.

=> 패키지 속도 측면에서 yarn이 npm보다 빠릅니다.

  1. 보안
  • npm => 자동으로 패키지에 포함된 다른 패키지 코드를 실행합니다. => 보안 시스템에 취약성 발생
  • yarn => yarn.lock 또는 package.json 파일에 있는 파일만 설치합니다.

=> yarn이 보안적으로 더 뛰어나지만, 최근 npm도 업데이트를 통해 많이 향상되었습니다.

 

4. 명령어

dependencies 설치 npm install yarn
패키지 설치 npm install [패키지명] yarn add [패키지명]
dev 패키지 설치 npm install --save-dev [패키지명] yarn add --dev [패키지명]
글로벌 패키지 설치 npm install --global [패키지명] yarn global add [패키지명]
패키지 제거 npm uninstall [패키지명] yarn remove [패키지명]
dev 패키지 제거 npm uninstall --save-dev [패키지명] yarn remove [패키지명]
글로벌 패키지 제거 npm uninstall --global [패키지명] yarn global remove [패키지명]
업데이트 npm update yarn upgrade
패키지 업데이트 npm update [패키지명] yarn upgrade [패키지명]

 

 

 

 


참조

https://joshua1988.github.io/vue-camp/package-manager/npm-vs-yarn.html#npm%E1%84%80%E1%85%AA-yarn%E1%84%8B%E1%85%B4-%E1%84%8E%E1%85%A1%E1%84%8B%E1%85%B5%E1%84%8C%E1%85%A5%E1%86%B7