node로 프로젝트를 진행할 때 많이 쓰이는 패키지 관리 툴로는 대표적으로 npm과 yarn이 있다.
Node.js의 기본 패키지 관리자이다. 전세계적으로 가장 많은 이들이 사용하고 있는 패키지 관리 툴로, Node.js로 만들어진 모듈을 웹에서 받아서 쉽게 설치하고 관리할 수 있다.
npm 명령어
npm init: package.json 생성npm install: package.json 파일 및 해당 종속성에 나열된 모든 모듈을 설치npm installpackage_name@버전 : 특정 패키지의 특정 버전 설치npm install주소 : 특정 저장소 내 패키지 설치 (주로 github을 이와 같이 설치)npm installpackage_name -g : 로컬의 다른 프로젝트도 이 패키지를 사용 가능하게 함npm uninstall: 패키지 삭제npm update: 설치한 패키지들을 업데이트npm dedupe: 중복 설치된 패키지들을 정리
package.json은 프로젝트 정보와 의존성(dependencies)을 관리하는 문서이다. 우리가 어떤 패키지(오픈소스)를 사용하는지, 어떤 버전을 사용하는지 등을 기록함으로써 어느 곳에서도 동일한 개발 환경을 구축할 수 있게 해준다.
페이스북에서 만든 자바스크립트 패키지 매니저이다. npm과 같은 기능을 수행하지만, npm의 단점을 보완하여 만든 매니저 툴이다. npm, brew를 통해 설치할 수 있다.
yarn은 다운받은 패키지 데이터를 캐시(cache)에 저장하여 중복된 데이터는 다운로드하지않고, 캐시에 저장된 파일을 활용한다. 또한 여러개의 패키지를 설치할 때 병렬로 처리하기 때문에 npm(순차적)에 비해 패키지 설치속도가 빠르다.
npm은 패키지가 설치될 때 자동으로 코드와 의존성을 실행할 수 있도록 허용하는 반면, yarn은 yarn.lock이나 package.json에 있는 것만 설치하기 때문에 안정성, 보안성 면에서 npm보다 우수하다. 또한 yarn.lock은 모든 디바이스에 같은 패키지를 설치하는 것을 보장하므로 버전의 차이로 인해 생기는 버그를 방지할 수 있다.
그러나 최근 npm의 업데이트로 npm의 보안성이 크게 향상되어 현재는 npm이나 yarn이나 큰 차이가 없다.
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: 중복 설치된 패키지들을 정리