패키지 매니저 비교 : npm vs yarn

2024. 9. 13. 21:22·Node.js
반응형

1️⃣ npm

  • Node.js의 패키지를 관리할 수 있는 도구
  • Node.js를 설치하면 npm도 자동으로 설치됨

 

🛡️ 패키지 관련 명령어

  • 프로젝트 초기화 (package.json 생성)
    • npm init
  • package.json과 package-lock.json에 정의된 모든 의존성 설치
    • npm install
    • npm i
  • 패키지 설치
    • npm install [패키지 이름]
    • npm i [패키지 이름]
  • devDependencies에 패키지 추가
    • npm install --save-dev [패키지 이름]
    • npm i -D [패키지 이름]
  • 패키지 업데이트
    • npm update [패키지 이름]
  • 패키지 제거
    • npm uninstall [패키지 이름]
  • 현재 프로젝트에 설치된 패키지 목록 확인
    • npm list

 

🛡️ 의존성 관리

package.json

  • package.json에서 메타데이터와 파일의 종속성을 기록
    • 종속성의 정확한 버전 및 의존성 트리는 package-lock.json과 npm-shrinkwrap.json에서 관리

node_modules

  • 프로젝트에 설치된 패키지가 저장되는 폴더
  • package.json에 정의된 의존성을 기반으로 관리

스크립트 실행

  • package.json에 정의된 스크립트를 실행
  • npm run [스크립트 이름]

 


 

2️⃣ yarn

  • 페이스북에서 개발한 패키지 관리자

 

🛡️ 패키지

  • 프로젝트 초기화 (package.json 생성)
    • yarn init
  • package.json과 yarn.lock에 정의된 모든 의존성 설치
    • yarn install
    • yarn
  • 패키지 설치
    • yarn add [패키지 이름]
  • devDependencies에 패키지 추가
    • yarn add --dev [패키지 이름]
    • yarn add -D [패키지 이름]
  • 패키지 업데이트
    • yarn upgrade [패키지 이름]
  • 패키지 제거
    • npm remove [패키지 이름]
  • 현재 프로젝트에 설치된 패키지 목록 확인
    • yarn list

 

🛡️ 의존성 관리

package.json

  • package.json에서 메타데이터와 파일의 종속성을 기록

yarn.lock

  • 프로젝트의 모든 의존성 트리와 각 패키지의 정확한 버전 기록
  • npm의 package-lock.json과 유사

node_modules

  • 프로젝트에 설치된 패키지가 저장되는 폴더
  • package.json에 정의된 의존성을 기반으로 관리

스크립트 실행

  • package.json에 정의된 스크립트를 실행
  • yarn run [스크립트 이름]

 


 

3️⃣ npm vs yarn

  • 설치 속도 - yarn 👍
    • yarn이 병렬 설치와 캐싱 메커니즘으로 인해 더 빠르다
    • npm은 패키지 캐싱을 지원하지 않는다
  • 안전성
    • npm은 패키지가 설치될 대 자동으로 코드와 의존성을 실행하여 편하지만 안전성을 위협할 수 있다
  • 보안성
    • yarn은 모든 디바이스에서 같은 패키지를 설치하는 것을 보장하기 때문에 버전의 차이로 인한 버그를 방지할 수 있다

 


 

4️⃣ 뭘 쓰는 게 좋을까?

🛡️ npm을 쓰면 좋은 경우

  • yarn은 추가로 설치해야 하지만 npm은 기본 제공이므로 단순한 프로젝트에서 사용하기 좋다

🛡️ yarn을 쓰면 좋은 경우

  • 설치 속도가 빠르고 캐싱이 효율적이므로 대규모 프로젝트에서 사용하기 좋다
  • 여러 패키지를 하나의 리포지토리에서 관리해야 하는 경우 yarn의 워크스페이스 기능을 활용할 수 있다
반응형

'Node.js' 카테고리의 다른 글

WebSocket 개념과 통신 실습  (0) 2024.07.30
'Node.js' 카테고리의 다른 글
  • WebSocket 개념과 통신 실습
올콩
올콩
콩 심은 데 콩 난다
  • 올콩
    콩스토리
    올콩
  • 전체
    오늘
    어제
    • 분류 전체보기 (198) N
      • SSAFY (10)
      • Algorithm (115)
        • 이론 (6)
        • 백준 (BOJ) (108)
        • 프로그래머스 (1)
      • Trouble Shooting (9)
      • Frontend (7) N
      • React (17)
      • Next.js (4)
      • Vue (4)
      • Node.js (2)
      • HTML (9)
      • DevOps (4)
        • Git (4)
      • Language (9)
        • JavaScript (0)
        • Java (9)
      • Embedded (1)
      • CS (5)
        • Network (1)
        • Blockchain (4)
      • 자격증 (2)
  • 블로그 메뉴

    • GitHub
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    오블완
    bfs
    SSAFY
    Algorithm
    DP
    순열
    티스토리챌린지
    Java
    중복순열
    Heap
    Error
    html5
    힙
    브루트포스
    알고리즘
    백준
    우선순위큐
    구현
    블록체인
    싸피
    dfs
    파이썬
    수학
    React
    백트래킹
    강의
    재귀
    중복조합
    Next.js
    SSAFYcial
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
올콩
패키지 매니저 비교 : npm vs yarn
상단으로

티스토리툴바