리액트나 Node.js를 쓸때 yarn
을 설치하고 시작하는 튜토리얼들이 많았다.
그래서 자연스럽게 yarn을 썼었는데 문득 yarn이 npm이랑 똑같은 역할을 같아 둘의 차이가 궁금해졌다.
package-lock.json
이랑 yarn.lock
둘다 있는게 번거롭기도 했고..
요즘엔 npm만 쓰는데 많은 사람들이 yarn을 쓰는 이유가 있을 테니까! 싶어서 둘의 차이점을 찾아봤다.
npm과 yarn의 공통점
- 둘 다 Node.js package manager다.
- 둘 다 package.json에 저장된 프로젝트 메타데이터를 사용한다.
Yarn
- npm을 보완하기 위해 페이스북에서 개발한 Node.js 패키지 매니저다.
Yarn의 장점
-
속도가 빠르다
npm은 패키지를 설치할때 순서대로 하나씩 설치하는 반면, yarn은 동시에 (병렬로) 여러 패키지를 설치한다. -
plug n play
yarn은 node_modules 폴더 대신_pnp.cjs
파일에 최적화된 디펜던시 맵을 만들어둔다. 그래서 빠르게 프로젝트를 구동하거나 install할 수 있다. -> 그걸 바탕으로 인스톨하기때문에 오프라인일때도 딜레이가 매우 적다! -
보안이 더 잘 되어있다.
npm은 dependency(의존성)이 있는 모든 패키지를 바로 설치하는 반면, yarn은yarn.lock
이나package.json
에 있는 파일만 설치한다. (npm, yarn 둘다 시큐리티 체크는 한다.)