NPM VS YARN

webDev5·2024년 2월 14일

패키지

목록 보기
1/3

NPM(Node Package Manager)

  • 자바스크립트 언어를 위한 패키지 관리자
  • 세계적으로 가장 많은 사람이 사용 중
  • Node.js로 만들어진 모듈을 다운 받아서 쉽게 설치하고 관리 해줌

명령어

명령어설명
npm initpackage.json 생성
npm installpackage.json 파일 및 해당 종속성에 나열된 모든 모듈 설치
npm install package_name@버전특정 패키지의 특정 버전 설치
npm install 주소특정 저장소 내 패키지 설치
npm install package_name -g글로벌로 설치 (로컬의 다른 프로젝트도 이 패키지를 사용할 수 있게 함)
npm uninstall패키지 삭제 명령어
npm update설치한 패키지들을 업데이트해 줌
npm dedupe중복으로 설치된 패키지들을 정리해 주는 명령어

package.json이란?

  • 프로젝트 정보와 의존성을 관리하는 문서
  • 어느 곳에서도 같은 개발 환경을 구축할 수 있게 함

yarn

  • 페이스북에서 만든 자바스크립트 패키지 매니저
  • npm의 단점을 해결하기 위해 만들어진 매니저 툴 (npm의 단점 : 속도, 안정성, 보안성 등)

속도

  • 다운받은 패키지 데이터를 캐시에 저장하여, 중복된 데이터는 다운로드하지않고, 캐시에 저장된 파일을 활용
  • 이론적으로 npm에 비해 패키지 설치 속도가 매우 빠름
  • 여러 패키지를 설치할 때 병렬로 처리해서 성능과 속도가 증가

안정성/보안성

  1. npm
    • 자동으로 코드와 의존성을 실행할 수 있도록 허용
    • 편리하지만 안정성을 위협, 보장된 정책 없이 등록한 패키지가 존재할 수 있다는 점이 더욱 위험
  2. yarn
    • yarn.lock이나 package.json으로 부터 설치만 하면, yarn.lock은 모든 디바이스에 같은 패키지를 설치하는 것을 보장
    • 버전의 차이로 인해 생기는 버그를 방지
    • 체크섬을 사용해서 코드가 실행되기 전에 설치된 패키지의 무결성을 확인

명령어

명령어설명
yarn initpackage.json 생성
yarn or yarn installpackage.json 파일 및 해당 종속성에 나열된 모든 모듈을 설치
yarn add package_name@버전특정 패키지의 특정 버전 설치
yarn add 주소특정 저장소 내 패키지 설치
yarn global add package_name글로벌로 설치 (로컬의 다른 프로젝트도 이 패키지를 사용할 수 있게 됨)
yarn remove패키지 삭제 명령어
yarn upgrade설치한 패키지들을 업데이트해 줌
npm dedupe중복으로 설치된 패키지들을 정리해 주는 명령어

단점

  • Yarn.lock파일의 버전관리로 인해 기존 모듈이 최신화로 업데이트될 수 있음, 하위 호환을 보장하지 않는 모듈의 경우는 에러가 날 수 있음.

결론

  • 2016~2017년 기준 yarn이 npm보다 속도나 안정성이 뛰어났음
  • npm 또한 몇 년간 발전, 단점을 많이 보완
  • 현재 기준, npm과 yarn의 성능과 안정성 차이는 크지 않음 (yarn이 약간 우세)
  • npm이 yarn보다 사용자 수가 많고 접근성이 뛰어남

출처

profile
공부한 내용을 정리하는 블로그입니다.

0개의 댓글