Yarn Javascript Package Manager

Yarn Javascript Package Manager

2018, Sep 03    

오늘은 npm 만큼은 아니지만, 대중적으로 사용되고 있는 Yarn 의 대해서 대략적으로 알아보겠습니다.

YARN 이란?

YarnJavascript Package Manager 로, Facebook 에서 Npm 의 약점(일관성, 보안성, 성능)을 보완해서 나온 새로운 Package Manager 입니다.
NPM 을 기술적으로 보완하는 측면이 강하기 때문에, 여전히 NPM 의 레포지토리 를 사용하지만 병렬 설치로 더 빠르게 패키지를 설치할 수 있습니다.


Yarn 설치

$ npm install -g yarn


Yarn 의 사용법

Yarn 의 사용법은 NPM 과 거의 흡사합니다.

  • package.json 만들기
    $ yarn init
    

    npm 과 동일하게 init 명령을 통해서 package.json 파일을 생성합니다.

  • package.json 에 정의된 package 설치하기
    $ yarn install
    // install 명령 없이도 동일하게 동작한다
    $ yarn
    

    마찬가지로 npm 과 같이 install 명령을 통해서 package.json 에 정의된 package 를 설치하고 yarn.lock 파일을 생성합니다.
    yarn.lock 파일은 npm의 package-lock.json 과 동일한 역활의 파일이라고 생각하시면 될 것 같습니다.
    package-lock.json 이나 yarn.lock 파일 모두 설치시 패키지 버전의 일관성을 위해 생성되는 파일 이기 때문에 소스 제어 저장소에 같이 추가 하시는 걸 추천합니다.
    또한 yarn.lock 파일은 의존성 모듈 추가, 삭제, 변경시 자동으로 갱신되기 때문에 직접 수정해서는 안됩니다. (일관성 확인의 의미가 퇴색되기 때문에)

  • 패키지 추가하기
    $ yarn add [패키지명]
    $ yarn add [패키지명]@[버전이나 태그] [옵션]
    

    설치시 주요 옵션은 아래와 같습니다. 세부 옵션의 경우 yarn add –help 를 통해 확인해 주세요.

    –dev, -D : devDependencies 에 설치, 개발단계에서만 사용할 패키지를 설치한다.
    –peer, -P : peerDependencies 에 설치, 내가 만든 모듈이 다른 패키지와 의존관계일 때 명시
    –optional, -O : optionalDependencies 에 설치, 필요한 모듈이지만 없어도 설치시 에러가 나지 않게 하고 싶을 때 사용, 없어도 모듈이 대체될 수 있는 로직이 필요하게 됩니다.
    –tilde, -T : 마이너 버전의 가장 최신이 설치 됩니다. 예) foo@1.2.3 –tilde would accept 1.2.9 but not 1.3.0

  • 패키지 삭제
    npm 의 경우 package.json에서 패키지를 삭제 후 , npm install 로 실행할 경우 빠진 패키지를 자동으로 삭제해 주었습니다.
    yarn 의 경우에는 직접 yarn remove [패키지명] 으로 삭제 해야합니다.

    패키지명을 지정해서 삭제 할 경우 선언되 있는 dependencies 가 어디인지 상관없이 패키지 삭제후 package.json 과 yarn.lock 파일이 갱신됩니다.


이 정도만 알아도 사용하는 데 큰 불편함은 없을 듯 합니다.