TIL (Today I Learned)

#TIL_npm, npx, yarn 고놈이 고놈 아닌가? 셋의 차이점을 빠르게 알아보자!.!

k0z 2023. 11. 21. 00:17
npm, npx, yarn은 JavaScript 패키지 관리 도구로, 프로젝트의 의존성을 관리하고 Script 실행을 돕는데 사용됩니다.

 

\


# npm(Node Package Manager)

Node.js 패키지를 설치하고 관리하는데 사용되는 기본 패키지 매니저입니다. 

 

Node,js를 설치할 때 함께 제공되며, JavaScript 라이브러리와 프레임워크를 설치하고 관리하는데 사용됩니다. 

 

package.json 파일을 사용하여 프로젝트의 의존성 및 스크립트를 관리합니다. 

 

npm install <package-name> // 패키지 설치

npm install -g <package-name> //전역 패키지 설치

npm run <script-name> // 스크립트 실행

 


# npx(NodePackage eXecute)

npm 패키지 중 하나로, npm 5.2.0 버전부터 기본적으로 함께 제공됩니다. 

 

npm 저장소에 없는 패키지나 일회성으로 사용할 패키지를 설치하지 않고 바로 실행 할 수 있도록 도와줍니다. 

 

로컬 프로젝트 내에 설치된 패키지의 버전 충돌을 방지하고 실행 편의성을 제공합니다. 

 

글로벌로 설치하지 않고 로컬 프로젝트 내 패키지를 실행할 때 사용됩니다. 

npx <package-name> // 패키지 실행

npx <package-name>@<version> // 패키지 실행 (특정 버전)

 


# Yarn(Yet Another Resource Negotiator)

npm과 유사한 패키지 매니저로, Fecebook이 개발한 JavaScript 패키지 매니저입니다. 

 

npm보다 빠른 속도와 보다 안정적인 의존성 해결방법을 제공합니다. 

 

package.json 파일을 사용하여 프로젝트의 의존성 및 스크립트를 관리합니다. 

 

yarn add <package-name> // 패키지 설치

yarn global add <package-name> // 전역 패키지 설치

yarn run <script-name> // 스크립트 실행

 


# 언제 어떤 것을 사용해야할까?

**npm 

Node,js를 설치할 때 기본적으로 제공되며, 대부분의 경우 기본적인 패키지 관리와 스크립트 실행에 사용됩니다. 

 

**npx 

로컬 프로젝트 내의 패키지를 설치하지 않고 실행할 때 사용합니다. 특정 버전의 패키지를 사용하거나 충돌을 피하고자 할 때 유용합니다. 

 

 **yarn

npm보다 빠르고 안정적인 패키지 설치와 의존성 관리를 원할 때 사용합니다. 특히, 대규모 프로젝트에서 성능을 향상시키고자 할 때 유용합니다. 

 

일반적으로는 npm을 먼저 사용하고, 성능이나 특정한 요구 사항이 있을 때 npx나 yarn을 고려하게 됩니다.

 


# 내용 정리

  npm npx yarn
분류 패키지 매니저 패키지 러너 (실행이 목적) 패키지 매니저
설치 NodeJS 설치 시 함께 설치 npm과 함께 설치 됨 npm을 통해 별도 설치 필요
특징 대표적인 JS의 패키지 매니저로 패키지의 설치, 업데이트, 제거, 종속성 등을 관리 패키지가 로컬 및 전역 환경에 설치되어 있다면 바로 실행이 가능하며 패키지 테스트에 용이 npm의 단점을 보완한 패키지 매니저, 최신 버전의 경우 PnP, zero install등의 기능을 탑재