본문 바로가기

React

Yarn 설치 및 사용 방법

yarn 이란?

Yarn은 프로젝트 패키지 의존성을 관리하는 툴이며, 페키지 메니저이다. yarn 은 2016년 페이스북에서 발표됐으며 npm 보다는 조금 더 빠른 성능을 보유하고 있다고 한다.

yarn 의 장점

1. 빠른 Installation

  • npm은 npm install 시 패키지들을 하나씩 순차적으로 설치하는 반면 yarn 은 yarn install 시 package.json 에 나열돼있는 의존성 패키지들을 동시에 병렬적 방식으로 한번에 설치를 진행한다. 그래서 설치 측면에서 npm 보다 빠르다는 장점이 있다.

2. 보안성

  • yarn.lock, package.json 파일에 있는 의존성 페키지들만 설치를 진행하기 때문에 모든 디바이스에서 같은 패키지들을 설치하는 것을 보장하며 다른 버전이 설치되어 발생할 수 있는 버그들이 많이 줄어들었다.

3. 패키지 잠금 파일

  • npm 에는 package-lock.json 이라는게 있다. yarn 에는 yarn.lock 이라는게 있다. 이 파일을 통해 패키지 버전 잠금을 지원한다. 이를 통해 프로젝트에서 의존하는 모든 패키지를 어느 환경에서든 항상 동일한 버전으로 설치할 수 있게 만들어 줬다.

yarn 사용법

yarn 을 사용하려면 먼저 설치를 진행해야 한다. node.js 를 설치하면 자동으로 함께 인스톨 되는 npm 을 이용해 yarn 설치를 진행해 줘야 한다. 

yarn 은 당연히 전역으로 사용할것이기 때문에 global 로 설치를 진행해 준다.

🙂 yarn 설치

[ window ]

npm install -g yarn

 

[ mac ]

 - homebrew 로 설치 시

$ brew install yarn

 - nvm 으로 node 버전을 관리 시 : nvm 같은 버전 관리 툴을 사용한다면 node.js 의 설치를 제외시키고 설치 진행

$ brew install yarn --without-node

🙂 yarn 설치 및 버전 확인

$ yarn --version
$ yarn -v

🙂 yarn add

특정 페키지 설치 진행

$ yarn add { package 명 }

특정 페키지의 버전까지 지정하여 설치 진행

$ yarn add { package 명 }@{ version }

목적에 따른 사용 범주 지정하여 설치 진행

  • devDependencies
$ yarn add { package 명 } --dev
  • peerDependencies
$ yarn add { package 명 } --peer
  • optionalDependencies
$ yarn add { package 명 } --optional

🙂 yarn remove

특정 페키지 삭제

$ yarn remove { package 명 }

🙂 yarn upgrade

특정 페키지 업그레이드

$ yarn upgrade { package 명 }

특정 페키지 버전 지정하여 업그레이드

$ yarn upgrade {package_name}@{version}

🙂 yarn install

node.js 에 package.json 에 정리 돼있는 의존성 라이브러리 module 들 설치 진행.

node_modules 폴더가 생성되고 그 안에 라이브러리들이 설치된다.

$ yarn install
$ yarn

yarn 의 설치 명령어를 그냥 yarn 만 해줘도 install 이 진행된다.

 

만약 install 진행중 네트워크 또는 여러가지 요인으로 TIMEOUT 오류가 발생했을때 아래와 같이 인스톨을 진행해보자.

$ yarn install --network-timeout 6000000

install이 최종적으로 완료되면 yarn.lock 이 자동으로 생성된다.

🙂 yarn.lock

yarn.lock 은 의존성 모듈들의 버전 정보가 정리돼있는 파일이다. 특정 라이브러리들의 하위 모듈 정보 및 버전까지 확인 가능하다.

정상 실행된 환경에서의 버전을 기록 저장함으로써 다른 실행 환경에서 install 을 진행했을때 정상적으로 설치가 되는것을 보장한다. 정말 많은 라이브러리들이 서로를 하위 의존성 모듈로 두고있는 경우가 있어 버전 차이로 인한 문제가 발생할 수 있다. 그렇기 때문에 정상 실행된 버전들을 기록 저장해두는 것이다.