C.W.K.
Stream
Lesson 01 of 05 · published

Yarn Classic vs Yarn Berry — 헷갈리지 마

~10 min · yarn, overview, javascript

Level 0초심자
0 XP0/55 lessons0/16 achievements
0/80 XP to next level80 XP to go0% complete

Yarn 은 2016년 Facebook (이제 Meta) 이 만듦, 그 당시 npm 의 진짜 문제였던 install 속도 + lockfile 재현성 fix 위해. 그 후 몇 년에 npm 이 따라잡았고, Yarn 이 둘로 split: Yarn Classic (v1), 원조, 이제 maintenance-only 모드; 그리고 Yarn Berry (v2-v4), 같은 팀의 거의 전체 리라이트, 급진적 새 아이디어로. 오늘 새 프로젝트 시작하면 Yarn Berry 의미 — 절대 Yarn Classic 아님.

Yarn Berry 의 헤드라인 기능은 Plug'n'Play (PnP): node_modules 완전 제거. 패키지가 .yarn/cache/ 의 zip 파일로 저장, 단일 생성된 파일 (.pnp.cjs) 이 모든 import 를 right zip entry 에 매핑. 8만 개 node_modules 파일 traverse 안 함; phantom deps 없음; install time 극적으로 떨어져. trade-off 는 일부 도구 (PnP 모르는 일부 IDE, 옛 bundler) 가 plugin 없이 PnP 이해 못 함.

Berry 의 다른 큰 아이디어는 zero-installs: .yarn/cache/ 를 Git 에 commit. 새 팀원이 clone 후 즉시 코드 실행 — yarn install 단계 전혀 없음. CI 가 install 건너뜀. trade-off 는 더 큰 Git repo, 그치만 install time 이 CI 지배하는 팀에겐 5-10x speedup.

Yarn v4 (현재, Node 18+ 필요) 가 이전 별도 plugin 들 다 core 로 fold, Berry 가 v3 보다 cold install 3.9x 빠름, Prolog 제약 엔진을 JavaScript 기반으로 교체. JS 패키지 매니저 중 가장 야심찬 — 그리고 가장 opinionated.

Code

Yarn Classic vs Berry — 한눈에·text
                       Yarn Classic (v1)       Yarn Berry (v4)
  Status               Maintenance-only         Active development
  node_modules         Yes                      Optional (PnP 디폴트)
  Install 모델         npm 같음                 Plug'n'Play
  Lockfile             yarn.lock                yarn.lock (다른 형식)
  Plugins              External                 Built-in
  CI install flag      --frozen-lockfile        --immutable
  새 프로젝트?         No                       YES
  Constraints engine   None                     JS 기반 (v4) / Prolog (v3)

External links

Exercise

전에 Yarn 썼으면 어느 버전인지 알아: 'yarn --version'. 1.x 면 Classic. 2.x/3.x/4.x 면 Berry. 새 프로젝트 결정 트리 간단: Berry 학습 commit 하면 Berry; 안 하면 pnpm 또는 npm.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.