기존에는 자바스크립트 언어를 위한 Node.js의 기본 패키지 관리자인 npm(Node Package Manager)을 사용하였다.
하지만, 최근 프로젝트에서 새로운 기술을 경험해보기 위해 현직에서 가장 많이 사용한다는 Yarn-berry를 사용해보기로 했다.
Yarn란?
Yarn은 페이스북에서 만든 자바스크립트 패키지 매니저다.
npm의 단점을 보완해서 속도(performance)와 안정성(stability), 보안성(security)이 뛰어난 것이 특징이다.
속도
- 패키지 데이터를 캐시(cache)에 저장
- 중복된 데이터는 다운하지 않아 패키지 설치 속도가 빠름
- 여러개를 설치할 때는 병렬로 처리해 npm(순차적)보다 빠름
안정성, 보안성
yarn.lock
이나 package.json
으로 부터 설치만 함
yarn.lock
로 버전을 고정하여 항상 같은 버전만 사용할 수 있음
Yarn-berry란?
yarn v2 이상의 최신 버전 yarn을 이르는 명칭이다.
기존의 yarn v1은 yarn classic
이라고 부른다.
아주 큰 특징은 node_modules를 안써서 파일크기가 작다는 점
Plug'n'Play
- yarn berry가 제공하는 새로운 패키지 관리 시스템
- 기존의 무거웠던
node_modules
대신, 패키지들에 대한 정보는 .zip 파일로 압축하여 .yarn/cache 폴더에 저장
- 이를 찾기 위한 정보를 .pnp.cjs 파일에 생성 후 의존성 트리 정보를 단일 파일에 저장
Zero install
- yarn-berry는 의존성까지 github에 올릴 수 있음
- yarn berry를 통해 만든 의존성 폴더는 어지간히 크지 않은 이상 200mb를 넘지 않음
- 덕분에 git clone 이후 별도의 설치가 필요 없이, 바로 사용할 수 있도록하는 zero-install 시도가능
Yarn 간단 명령어
- yarn init : package.json 생성
- yarn or yarn install : package.json 파일 및 해당 종속성에 나열된 모든 모듈을 설치
- yarn add package_name@버전 : 특정 패키지의 특정 버전 설치
- yarn add 주소 : 특정 저장소 내 패키지 설치. 주로 github을 이와 같이 설치합니다.
- yarn global add package_name : 옵션. 글로벌로 설치. 로컬의 다른 프로젝트도 이 패키지를 사용 가능하게 됩니다.
- yarn remove : 패키지 삭제 명령어입니다.
- yarn upgrade : 설치한 패키지들을 업데이트해줍니다.
- npm dedupe : 중복 설치된 패키지들을 정리해주는 명령어입니다.