yarn 명령어 정리
yarn은 메타에서 만든 자바스크립트 패키지 관리 프로그램입니다. 자주 쓰는 명령어들을 정리해보겠습니다.
yarn init -y
yarn 초기 설정하기. - y 옵션을 붙이면 처음 생성할 때 이것 저것 물어보는 것을 skip할 수 있다.
yarn add package-name
yarn의 패키지 설치하기
yarn add package-name@1.2.3
yarn에서 특정 버전의 패키지 설치하기
yarn add <package...> --dev
yarn add <package...> -D
yarn에서 개발 환경 설치하기 (dev dependency)
yarn global add <package...>
yarn에서 전역 설치하기. 권장하지는 않지만 전역 설치가 필요할 때가 있다.
yarn install
package.json에 명시된 패키지들을 설치한다. yarn.lock 파일을 생성한다. yarn.lock가 있다면 yarn.lock에 명시된 패키지들을 설치한다. 이를 통해 일관성있게 패키지를 관리할 수있다. yarn.lock는 git 관리에 포함하여 여러 개발환경에서 통일성을 가질 수 있게 한다.
yarn remove <package...>
특정 패키지 삭제하기.
yarn cache clean [<module_name...>]
얀의 캐시 삭제하기. yarn cache clean 할 때 패키지 이름을 지정하면 해당 패키지의 캐시만 삭제할 수 있다. yarn cache list 를 하면 캐시되어있는 목록을 쭉 볼 수 있다. yarn 또는 yarn install 하면 다시 글로벌 캐시가 생성된다.
yarn upgrade [package | package@version]
패키지를 지정된 범위 안에서 최신 버전으로 업데이트 한다. 패키지를 업데이트하고 yarn.lock에도 기록한다. yarn upgrade로 일괄적으로 업데이트 할 수 도 있는데 이 때 하위 호환성이 깨질 수 도 있으니 주의해야 한다. 예시는 다음과 같다.
yarn upgrade
yarn upgrade left-pad
yarn upgrade left-pad@^1.0.0
yarn upgrade left-pad grunt
yarn upgrade @angular
여기서 ^ (캐럿) 의 의미는 하위 호환성을 해치치 않는 수준에서 업데이트가 가능하다는 의미이다. 예를 들어 1.0.0 이상일 경우 맨 앞자리 major 버전이 바뀌지 않는 범위 내에서 업데이트가 가능하다는 의미이다. 1.0.0 미만일 경우 하위 호환성이 엄청나게 바뀔 가능성이 있으므로 틸드처럼 지정한 범위 자릿 수 내에서만 업데이트가 가능하다. 자세한 것은 아웃사이더 님의 블로그 글을 참조하자. 결국 하위 호환성을 해치지 않는 범위 내에서 업데이트가 가능하다고 보면 된다.
그럼 틸드 (~)란 무엇인가? 지정한 버전의 마지막 자리 내의 범위 에서만 업데이트가 가능하다.
예를 들어 1.0.0의 경우 맨 끝의 0의 범위만 바뀔 수 있다.
1.0의 경우 맨 끝의 0의 범위만 바뀔 수 있다.
조금 더 안전해서 npm에서 기본값으로 많이 쓰인다.
요약 하자면 캐럿은 최대 호환성 범위 내에서 틸드는 최소 호환성 범위 내에서 업데이트 된다고 기억하면 된다.
잡담 : yarn이 조금 더 빨라서 쓰고 있기는 하지만 메타가 없어지면 yarn도 없어질까? 또 쓸데없는 생각을 하고 있다…