devwoodie.com
🔎
DevNode.js

node_modules 어디갔어? Feat. Yarn Berry

2024.10.30

새로운 프로젝트 환경설정을 할 일이 있어서 yarn 패키지를 사용해서 진행하였다.
그런데 자주 보던 node_modules 폴더가 안보이는데?

1


찾아보자

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 방식에 맞는 의존성 관리가 세팅되어 있어야한다.

그래서

2

그래서 나는 이번에 한 번도 써보지 않았던 yarn berry 를 사용해서 프로젝트를 진행해보려고 한다. 패키지 지원 문제가 있을 수 있겠지만, npm 보다 설치도 빠르고 가볍다는 부분이 메리트가 크다고 생각하기 때문에 도전해봐야겠다.

👇 도움이 되셨다면 👇

B

u

y

M

e

A

C

o

f

f

e

e

© Powered by danmin