Facebook에서 만든 자바스크립트 패키지 매니저
특징
- 모듈을 비동기적으로 설치
- 여러 개의 패키지를 병렬적으로 처리하기 때문에, 성능과 속도 증가
- npm은 순차적으로 처리
- 패키지 속도가 npm에 비해 빠름
- 다운받은 패키지 데이터를 캐시(cache)에 저장하여, 중복된 데이터는 다운로드하지 않고, 캐시를 활용
- npm보다 보안성 및 안정성에서 우위
- npm은 패키지에 포함된 다른 패키지 코드를 자동으로 실행 ⇒ 안정성을 위협
- 반면, yarn은
yarn.lock
또는 package.json
에 명시된 파일만을 설치
- npm 업데이트 후 npm과 yarn간 성능 및 보안의 차는 대동소이
⇒ 개발자의 선호에 따라 사용
yarn.lock이란?
최초 프로젝트 생성 시점의 버전으로 고정하기 위해 사용하는 파일
⇒ package-lock.json
과 비슷한 역할
- 프로젝트에 참여하는 모든 개발자가 동일한 환경(버전)에서 사용할 수 있도록 하기 위함
- 패키지를 설치할 때, package.json 뿐만 아니라 lock 파일(
package-lock.json
또는 yarn.lock
)을 참고하여 명시된 버전으로 설치
- lock파일은
.gitignore
에 포함되면 안됨
설치
NPM