본문 바로가기
프로그래밍/JavaScript

[JavaScript] npm vs yarn

by 소꿍 2022. 6. 5.

npm

자바스크립트 언어를 위한 패키지 관리자로, Node.js의 기본 패키지 관리자(Node.js에 기본 내장)이다.

 

command-line client인 npm과 온라인 데이터베이스인 npm registry로 이루어져 있다.

일반적으로 command-line client를 npm이라고 볼 수 있으며 실제로 npm에는 npm registry까지 포함되어 있다.

 

 

npm 명령어

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

 

 

yarn

페이스북에서 만든 자바스크립트 패키지 매니저로,

npm에 비해 속도(performance), 안정성(stability), 보안성(security)에 유리하다.

 

  • 속도
    yarn은 다운받은 패키지 데이터를 캐시(cache)에 저장하여, 중복된 데이터는 다운로드하지 않고
    캐시에 저장된 파일을 활용해 npm에 비해 패키지 설치속도가 매우 빠르다.
    또한 npm은 패키지를 한번에 하나씩 순차적으로 설치하는 데 비해, yarn은 여러 패키지를 동시에 가져와 설치하도록 돼 있어 속도가 더 빠르다.

  • 안정성 / 보안성
    npm은 패키지가 설치될 때 자동으로 코드와 의존성(패키지에 포함된 다른 패키지 코드 실행 가능)을 실행할 수 있는데, 이는 편리한 기능이지만 안정성을 위협할 수 있다.
    특히 보장된 정책 없이 등록한 패키지가 존재할 수 있다는 점에서 더욱 위험도가 높다.
    반면 yarn은 yarn.lock이나 package.json에 있는 파일만 설치하며,
    yarn.lock은 모든 디바이스에 같은 패키지를 설치하는 것을 보장하기 때문에 버전 차이로 인해 생기는 버그를 방지해줄 수 있다.
    다만 최근 npm 업데이트에서도 보안성이 향상되었다고 한다.

 

yarn 명령어

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

 


참고한 글

 

[개발상식] npm과 yarn

패키지 관리 툴로는 대표적으로 npm과 yarn이 있습니다.여러분들은 평소 어떠한 패키지 설치 모듈을 사용하나요?

velog.io

 

About npm | npm Docs

Documentation for the npm registry, website, and command-line interface

docs.npmjs.com

 

Introduction

An introduction to Yarn, a package manager for your code.

yarnpkg.com

 

npm VS yarn | Cracking Vue.js

npm과 yarn npm과 yarn은 자바스크립트 런타임 환경인 노드(Node.js)의 패키지 관리자입니다. 전 세계의 개발자들이 자바스크립트로 만든 다양한 패키지를 npm 온라인 데이터베이스 (opens new window)에 올

joshua1988.github.io

 

'프로그래밍 > JavaScript' 카테고리의 다른 글

[JavaScript] splice()와 slice()  (0) 2021.03.23
[JavaScript] 이벤트 처리(event handling)  (0) 2020.09.13
[JavaScript] DOM 및 Form 객체  (0) 2020.09.13
[JavaScript] 함수  (0) 2020.09.13
[JavaScript] 문장(Statement)  (0) 2020.09.13

댓글