🔎
node_modules 어디갔어? Feat. Yarn Berry
2024.10.30
새로운 프로젝트 환경설정을 할 일이 있어서 yarn 패키지를 사용해서 진행하였다.
그런데 자주 보던 node_modules 폴더가 안보이는데?
찾아보자
yarn berry 를 사용하면 우리가 자주 봐왔던 node_modules 폴더가 설치되지 않는다.
그 대신 .pnp.cjs
와 .pnp.loader.mjs
파일이 설치된다.
Yarn Berry
Yarn Berry는 Node.js를 위한 패키지 관리 시스템으로 Yarn의 최신 버전인 Yarn 2.x 이상
을 지칭하는 말이다.
기존의 Yarn 1.x 에서 큰 변화가 이루어진 버전으로, 여러 개선사항과 새로운 기능이 있다고 한다.
그 중 오늘 다룰 내용은
Plug’n’Play (PnP)
Yarn Berry는 기존의 node_module 폴더 대신 패키지를 캐시 폴더에 저장하고, .pnp.cjs 파일
에 의존성을 찾을 수 있는 정보가 기록된다.
.pnp.cjs를 이용하면 디스크 I/O없이 어떤 패키지가 어떤 라이브러리에 의존하는지, 각 라이브러리는 어디에 위치하는지를 바로 알 수 있다.
-
장점
- 패키지의 모든 의존성은 .pnp.cjs 파일을 이용하여 관리되기 때문에 외부 환경에 영향을 받지 않는다.
- .pnp.cjs 파일이 제공하는 자료구조를 이용해서 의존성 위치를 찾기 때문에 require 에 사용되는 시간이 크게 단축된다.
- 무겁고 복잡한 node_modules에 비해 가볍다.
- Zero-Install을 사용하면 대부분의 라이브러리를 설치 없이 사용할 수 있다.
-
단점
- pnp를 지원하지 않는 패키지가 존재할 수 있다.
- 각 모듈이 pnp로 사용될 수 있기 위해서는 pnp 방식에 맞는 의존성 관리가 세팅되어 있어야한다.
그래서
그래서 나는 이번에 한 번도 써보지 않았던 yarn berry 를 사용해서 프로젝트를 진행해보려고 한다. 패키지 지원 문제가 있을 수 있겠지만, npm 보다 설치도 빠르고 가볍다는 부분이 메리트가 크다고 생각하기 때문에 도전해봐야겠다.
👇 도움이 되셨다면 👇
B
u
y
M
e
A
C
o
f
f
e
e
☕
️