<aside> 📖
목차
</aside>
Npm은 Node Package Manager이란 뜻이다.
node.js를 설치하면 자동으로 node의 패키지 관리자인 npm도 같이 설치된다.
과거에는 npm의 속도가 yarn에 비해 많이 느리고, 개발자들 간의 버전이 동일할 수 없다는 문제점이 있었지만, 이 글을 쓰는 시점인 2024.11에는 많이 개선된 편이다.
기본적으로 패키지 설치, 업데이트, 삭제, 스크립트 실행 등 기본적인 패키지 관리자의 기능을 수행한다.
package.json
파일을 사용해 의존성을 정의하고, package-lock.json
파일을 통해 설치된 패키지의 정확한 버전을 저장한다. 이로 인해, 개발자들간의 모듈 버전 차이가 없는 것이다.
로컬 캐시에 패키지를 저장한다. 하지만 캐시 관리는 yarn에 비해 부실할 수 있다.
npm init -y // 초기의 package.json 파일을 만듦
npm install // package.json에 패키지에 있는 모든 모듈 설치
npm install 패키지-이름 // 특정 패키지의 특정 버전 설치
npm remove 패키지-이름 // package.json에 있는 패키지 제거
npm update // 설치한 패키지들을 최신버전으로 업데이트
npm dedupe // 중복된 패키지를 정리
yarn은 버전에 따라서 부르는 이름이 조금 다르다. v1은 yarn classic, v2이상은 yarn berry 라고 부른다. 버전 별 차이에 대해서도 추가로 기록해보자.
패이스북이 만든, npm의 단점(속도, 안정성, 보안성)을 보완하기 위해 만든 매니저 툴이다.
패키지 설치, 업데이트, 삭제, 스크립트 실행 등의 기본 기능을 제공하며, npm과 호환된다.
package.json
과 함께 yarn.lock
파일을 사용하여 설치된 패키지의 버전을 정확히 기록한다. yarn.lock파일이 먼저 나왔지만 package-lock.json
과 같은 역할을 한다고 보면 된다.
로컬 캐시에 패키지를 저장하고 이를 적극 활용하기 때문에 설치 속도가 빠르다. 또한, 여러 개의 패키지를 설치하는 경우, 병렬로 처리하기 때문에 빠르다.