November 29, 2021
Node Package Manager
를 의미한다.
Node.js의 기본 패키지 관리자 역할로, Node.js를 설치하면 기본적으로 같이 설치된다.
자바스크립트 모듈들을 패키지화하여 모아둔 저장소이다.
즉, 필요한 자바스크립트 라이브러리를 관리해주는 도구
라고 할 수 있다.
일반적으로 쓰이는 패키지들은 dependencies 항목에, 개발할 때만 필요한 패키지들은 devDependencies 항목에 명시한다.
빌드를 하고 배포를 할 때는 devDependencies에 있는 것들이 애플리케이션 코드에서 빠지게 된다.
➡️ 배포할 때는 빠져도 좋은 라이브러리들을 -D 옵션으로 설치한다.
등의 라이브러리는 -D 옵션으로 설치하는 것을 권장한다.
동일한 package.json
파일을 사용해도 시간과 장소에 따라서 서로 다른 버전의 패키지가 설치되는 문제를 패키지 잠금을 통해 해결할 수 있다.
yarn 역시 npm처럼 패키지 매니저이다.
npm이 여러 package를 설치할 때, 각각의 package를 완전히 설치하고 나서 다음 패키지가 설치하는 것과 달리 yar은 병렬로 처리한다. 따라서 성능과 속도 면에서 더 우수하고, 보안 면에서도 더 우수하다.
npm과 똑같이 node_modules
에 모듈들을 설치하고, package.json
에 버전을 명시하고 의존성을 추적 관리한다.
그러나 패키지 잠금 파일의 이름은 package-lock.json
이 아닌 yarn.lock
이다.
yarn-berry는 npm과 yarn의 비효율적인 매니징 방법을 개선한 새로운 패키지 관리 시스템이다.
yarn의 개발자가 만들었다. 즉, 사실은 yarn v2이다. 그렇기에 yarn을 설치하면 기본적으로 yarn-berry가 설치된다.
yarn-berry는 모듈 설치시 node_modules
가 아닌 .pnp.cjs
파일을 생성한다.
.pnp.cjs
는 node_modules
보다 훨씬 작은 용량을 차지하고, 비효율적인 의존성 검색을 해결했다.
프로젝트 폴더에서 yarn init -y
로 초기화 후 yarn set version stable
명령어 입력 시 berry를 사용할 수 있다.