Node.js를 배울때 쓰이는 패키지 관리 툴로 npm과 yarn이 있다고 배웠다.
비슷한 놈, 그 나물에 그 밥 일것 같지만 그래도 정확히 알고 있는게 좋을 것 같아 정리하고자 한다.
npm, yarn
npm과 yarn은 JS 런타임 환경인 Node.js의 패키지 관리자 이다. 전 세계의 개발자들이 JS로 만든 다양한 패키지를 npm 온라인 데이터베이스에 올리면 npm, yarn과 같은 패키지 관리자를 통해 설치 및 삭제가 가능하다.
그리고 명령 줄 인터페이스(Commend-line interface, CLi)를 통해 패키지 설치
및 삭제
뿐 아니라 패키지 버전 관리
, 의존성 관리
도 편리하게 할 수 있다.
패키지 매니저란?
패키지 매니저는 패키지를 손쉽게 다루는 작업을 안전하고 편리하게 사용하기 위한 툴이다.
다른 사람들이 만들어준 코드를 다운로드 받거나, 자신의 코드를 배포하여 다른 사람이 쓸 수 있도록 할 수 있다.
Node.js에서 대표적으로 사용하는 패키지 매니저는 npm과 yarn이 존재한다.
Package란??....
- npm이나 yarn에 업로드된 Node.js 모듈을 패키지라고 부릅니다.
- 모듈이 다른 모듈을 참조하여 사용하는 것과 같이, 패키지도 다른 패키지를 사용할 수 있습니다.
- 이런 관계를 의존 관계라고 표현합니다.
npm
NPM (Node Package Manager)은 자바스크립트 언어를 위한 패키지 관리자로 Node.js의 기본 패키지 관리자이다.
이 npm 툴을 이용하여 사람들이 Node 패키지를 만들고, 업로드하며 공유할 수 있어 누구나 게시된 패키지를 사용할 수 있다.
개발자 입장에서는 단 몇 줄의 command로 게시된 패키지들을 설치 받아서 사용할 수 있다.
기존 npm이 없었을 경우 필요로 하는 기능을 추가하기 위해서 직접 작성하거나 github를 통해 다운로드하여 사용해야 했다 하지만 이러한 불편을 해소하기 위해서 나타났는데 , Node.js를 설치하기만 하면 (기본적으로 npm은 Node.js에 내장되어 있다) 명령어 한 줄로 기능의 추가가 가능해졌다.
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의 대체제로 FaceBook이 출시한 패키지 매니저이다.
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 : 설치한 패키지들을 업데이트해줍니다.
npm dedupe : 중복 설치된 패키지들을 정리해주는 명령어입니다.
npm vs yarn
yarn 이 더 우세하다..
yarn은 보안 측면에서 npm보다 더 안전한 것으로 알려져 있습니다. npm은 자동으로 패키지에 포함된 다른 패키지 코드를 실행합니다. 이 특징은 편리하지만 안정성을 위협할 수 있습니다. 이로 인해 보안 시스템에 몇 가지 취약성이 발생하며 나중에 심각한 문제가 발생할 수 있습니다. 반면에 yarn은 yarn.lock 또는 package.json파일에 있는 파일만을 설치합니다. 보안은 yarn의 핵심 기능 중 하나이지만 최근 npm의 업데이트에서 npm의 보안 업데이트도 크게 향상되었습니다.
무엇을 사용할까?
✔ 그 나물에 그 밥 ✔