자바스크립트의 패키지 관리자 매니저인 “yarn vs npm vs npx” 들에 대해 공부한 내용을 정리해보았습니다.
공통점
NPX, NPM과 Yarn은 모두 JavaScript 런타임 환경인 Node.js용 패키지 관리자입니다.
Apple의 App Store 및 Google의 Play Store와 마찬가지로 이러한 패키지 관리자를 사용하면 전 세계 개발자가 다양하고 유용한 패키지 또는 프로그램을 온라인 데이터베이스에 업로드할 수 있습니다.
이들은 관리자 역할을 하여 이러한 패키지를 쉽게 설치하고 제거할 수 있도록 도와줍니다.
차이점
NPX
- 목적: 패키지를 설치하지 않고 실행합니다.
- 사용 사례: 레지스트리에서 직접 일회성 명령이나 도구를 실행합니다.
NPM
- 설치: Node.js 설치 시 자동으로 생성됩니다.
- 의미: Node Package Manager의 약자
- 플랫폼: NPM 자체가 패키지 관리를 위한 플랫폼입니다.
YARN
- Origin: 2016년 Facebook에서 개발했습니다.
- Compatibility: NPM과의 호환성이 좋으며 속도와 안정성이 뛰어납니다.
yarn vs npm vs npx 명령어
Function/Task | npm Command | yarn Command | npx Command |
---|---|---|---|
새 프로젝트 초기화 | npm init | yarn init | – |
설치 종속성 | npm install | yarn install | – |
패키지 추가 | npm install <package> | yarn add <package> | – |
개발자 종속성으로 패키지 추가 | npm install <package> --save-dev | yarn add <package> --dev | – |
업데이트 패키지 | npm update | yarn upgrade | – |
패키지 제거 | npm uninstall <package> | yarn remove <package> | – |
설치된 패키지 조회 | npm list | yarn list | – |
스크립트 실행 | npm run <script> | yarn run <script> | – |
특정 버전 설치 | npm install <package>@<version> | yarn add <package>@<version> | – |
글로벌 패키지 설치 | npm install -g <package> | yarn global add <package> | – |
설치하지 않고 패키지 실행 | – | – | npx <package> |
명령 실행 | – | – | npx <command> |
React 앱 만들기 | – | – | npx create-react-app <app-name> |
로컬 바이너리 실행 | – | – | npx <local-binary> |
특정 패키지 버전 실행 | – | – | npx [email protected] <command> |
yarn vs npm vs npx 요약
npx
는 패키지를 설치하지 않고 직접 실행하는 데 이상적이므로 일회성 작업 및 명령에 유용합니다.npm
은 Node.js의 기본 패키지 관리자로, 종속성 및 프로젝트 구성을 관리하는 데 적합합니다.yarn
은 병렬 처리 및 체크섬 확인과 같은 기능을 통해 안정성과 성능에 중점을 두고 npm보다 더 빠르고 안전한 대안을 제공합니다.
기능/도구 | npx | npm | yarn |
---|---|---|---|
목적 | 패키지를 설치하지 않고 실행 | Node.js에 대한 패키지 및 종속성을 관리합니다 | Facebook에서 개발한 Node.js용 대체 패키지 관리자 |
사용 사례 | 레지스트리에서 직접 일회성 명령이나 도구 실행 | 프로젝트 종속성 설치, 업데이트 및 관리 | 속도, 보안 및 안정성에 중점을 두고 패키지 및 종속성 관리 |
명령 | npx create-react-app my-app | npm install , npm update , npm publish | yarn add , yarn install , yarn upgrade |
포함됨 | npm(버전 5.2.0부터) | Node.js(기본 패키지 관리자) | 별도 설치 필요 |
설치 | 설치 없이 실행 | 패키지를 로컬 또는 글로벌로 설치 | 패키지를 로컬 또는 글로벌로 설치 |
속도 | – | 보통 | 병렬 처리 및 캐싱으로 인해 더 빨라짐 |
보안 | – | 시간이 지남에 따라 개선됨 | 체크섬 확인으로 보안 강화 |
일관성 | – | package-lock.json 에 따라 다름 | yarn.lock 으로 일관된 설치 보장 |
특정 버전 실행 | 특정 버전을 설치하지 않고도 실행 | 지정된 버전을 설치 | 지정된 버전을 설치 |
로컬 바이너리 실행 | PATH 를 수정하지 않고도 로컬 바이너리를 실행할 수 있습니다 | ./node_modules/.bin/ | yarn run |