이 글은 White Source Free Tools 사이트의 포스팅 글을 재해석한 & 요약한 글입니다.
nodejs 또는 javascript 진영에서 대표적인 package management tool
npm
, yarn
yarn-barry
npm
의 최대 장점은 node.js 를 설치하면 자동으로 설정되있다는 것이다.
Intellij, Eclipse, VSCode 같은 IDE 에서 프로젝트 템플릿을 node.js 로 설정할 경우 자동으로 package.json
, package-lock.json
이 생성되는 것을 경험해본 적 있지 않은가?
yarn
은 별도 설치가 필요한 대신, 보안성과 속도면에서 조금 더 우수하다.
다음은 디펜던시 설치 소요시간 벤치마크 테스트 결과다.
Yarn2 부터는 node_modules 에 dependency 저장을 더 이상 하지 않는다.
한 프로젝트 내에서 npm
과 yarn
을 같이 쓰면 충돌이 발생할 수 있다. 따라서 하나의 패키지 관리툴을 통일해서 사용하길 권장한다.
기존 yarn v1 이나 npm 은 패키지를 node_modules
를 상위 디렉토리로 이동하며 .readdir()
.stat()
메소드를 호출한다. 따라서 다음과 같은 단점이 있다.
$ yarn set version berry
node_modules
directoryscripts
in package.json# If you're using Zero-Installs:
.yarn/*
!.yarn/cache
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions
초기에는 속도, 보안성 때문에 yarn
이 라이징 스타로 npm
묵살시키나? 했지만
⭐ 현재 npm 버전은 7.7.6로 속도와 보안성 모두 yarn 과 거의 차이가 없어졌다.
많은 개발자들을 위해 끊임없이 개선해주는 이분들에게 감사하다.
결론은 '취향'차이다. 입맛에 맞는걸 쓰면된다.