yarn

 

์ผ๋‹จ Yarn Berry๋ผ๋Š”๊ฒŒ ๋ญ˜๊นŒ์š”?!

Yarn Berry๋ž€ 2020๋…„ 1์›”์— ์ถœ์‹œ๋œ Yarn Classic ์˜ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.

์ƒˆ๋กญ๊ฒŒ ๋’ค๋ฐ”๋€ ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €๋ผ๋Š” ๊ฒƒ์„ ๋ถ„๋ช…ํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด yarn ํŒ€์—์„œ๋Š” Yarn Berry ๋ผ๊ณ  ์ด๋ฆ„์„ ๋ถ™์˜€์Šต๋‹ˆ๋‹ค.

 

์ด๋Ÿฐ Yarn Berry๋Š” PnP(Plug'n'Play) ๋ชจ๋“œ๋ฅผ ํ†ตํ•ด node_modules ํด๋” ์—†์ด๋„ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋ถ„๋ช… ๊ทธ๋ ‡๊ฒŒ ์•Œ๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค!!

 

๊ทธ๋Ÿฐ๋ฐ, PnP ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  yarn start๋ฅผ ์‹คํ–‰ํ•˜๋ฉด node_modules ํด๋”๊ฐ€ ์ƒ๊ธฐ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ข…์ข… ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜๋…„ ์ •๋„ ์ „์— ์ƒ์„ฑํ•œ ์•Œ๋ฆฌ๋‹ˆ ํ”„๋กœ์ ํŠธ์—์„œ๋„ ๊ณ„์†ํ•ด์„œ node_modules๊ฐ€ ์ƒ์„ฑ๋์Šต๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด, ์™œ ์ด๋Ÿฐ ์ผ์ด ์ผ์–ด๋‚˜๋Š” ๊ฑธ๊นŒ์š”?

 

1. PnP ๋ชจ๋“œ์˜ ๊ธฐ๋ณธ ๊ฐœ๋…

PnP ๋ชจ๋“œ๋Š” Yarn Berry์˜ ์ฃผ์š” ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜๋กœ, ์ „ํ†ต์ ์ธ node_modules ํด๋”๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ ๋„ ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

์ด ๋ชจ๋“œ์—์„œ๋Š” ์˜์กด์„ฑ ํŒŒ์ผ๋“ค์ด .pnp.cjs๋ผ๋Š” ํŒŒ์ผ ํ•˜๋‚˜์— ๋ชจ๋‘ ์ €์žฅ๋˜๊ณ , ์ด ํŒŒ์ผ์„ ํ†ตํ•ด ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋“ค์„ ์ง์ ‘ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค.

์ด๋ก ์ ์œผ๋กœ๋Š” node_modules ํด๋”๊ฐ€ ์ „ํ˜€ ํ•„์š”ํ•˜์ง€ ์•Š๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

 

2. ์™œ node_modules๊ฐ€ ๋‹ค์‹œ ์ƒ์„ฑ๋ ๊นŒ?

a. ํŠน์ • ํŒจํ‚ค์ง€์˜ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ

์Šคํ„ฐ๋””์›๊ณผ ํ•™์Šตํ•ด ๋ณธ ๊ฒฐ๊ณผ ์ผ๋ถ€ ํŒจํ‚ค์ง€๋“ค์€ PnP ๋ชจ๋“œ์—์„œ ์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•ด๋‹น ํŒจํ‚ค์ง€๊ฐ€ ์—ฌ์ „ํžˆ node_modules ํด๋”์— ์˜์กดํ•˜๊ณ  ์žˆ๊ฑฐ๋‚˜, ํŠน์ • ํŒŒ์ผ๋“ค์„ ์ง์ ‘ ์ ‘๊ทผํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ํŒจํ‚ค์ง€์—์„œ fs ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ์˜์กด์„ฑ์˜ ํŒŒ์ผ์„ ์ง์ ‘ ์ฝ์œผ๋ ค ํ•  ๋•Œ, node_modules ๊ฒฝ๋กœ๋ฅผ ํ•˜๋“œ์ฝ”๋”ฉํ•œ ๊ฒฝ์šฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฐ ์ƒํ™ฉ์—์„œ Yarn์€ ํŒจํ‚ค์ง€ ํ˜ธํ™˜์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ž๋™์œผ๋กœ node_modules ํด๋”๋ฅผ ์ƒ์„ฑํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

์œ„์ฒ˜๋Ÿผ ์ž„์‹œ๋กœ ๊ฒฐ๋ก ์ง“๊ฒŒ ๋˜์—ˆ์ง€๋งŒ ๊ต์ฐจ ๊ฒ€์ฆ์ด ํ•„์š”ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ž˜๋ชป๋œ ๋‚ด์šฉ์ด ์žˆ๋‹ค๋ฉด ์–ธ์ œ๋ผ๋„ ๋Œ“๊ธ€ ๋‚จ๊ฒจ์ฃผ์„ธ์š”.

b. Webpack์ด๋‚˜ Vite ๊ฐ™์€ ๋ฒˆ๋“ค๋Ÿฌ์˜ ์บ์‹œ ์ฒ˜๋ฆฌ

Webpack์ด๋‚˜ Vite ๊ฐ™์€ ๋ฒˆ๋“ค๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋„ node_modules ํด๋”๊ฐ€ ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฒˆ๋“ค๋Ÿฌ๋Š” ์ข…์ข… ์˜์กด์„ฑ ํŒŒ์ผ๋“ค์„ ๋ฏธ๋ฆฌ ํŠธ๋žœ์ŠคํŒŒ์ผ๋งํ•˜์—ฌ ์บ์‹ฑํ•˜๋Š”๋ฐ, ์ด ์บ์‹œ ํŒŒ์ผ๋“ค์ด ๊ธฐ๋ณธ์ ์œผ๋กœ node_modules/.cache ํด๋”์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ์˜๋„์น˜ ์•Š๊ฒŒ node_modules ํด๋”๊ฐ€ ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

c. ํŠน์ • ์˜์กด์„ฑ ๋ฒ„์ „ ๋ฌธ์ œ

esbuild ๊ฐ™์€ ํŠน์ • ํŒจํ‚ค์ง€์˜ ๋ฒ„์ „์ด PnP ๋ชจ๋“œ์—์„œ ์™„๋ฒฝํžˆ ํ˜ธํ™˜๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ, ์˜์กด์„ฑ ํŠธ๋ฆฌ์—์„œ ํŠน์ • ํŒจํ‚ค์ง€๊ฐ€ ํ•˜์œ„ ํ˜ธํ™˜์„ฑ์„ ๊ฐ€์ง€์ง€ ๋ชปํ•ด node_modules ํด๋”๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, esbuild ๋ฒ„์ „์ด 0.15.15๋ณด๋‹ค ๋‚ฎ๋‹ค๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด ๊ฒฝ์šฐ ๋ฒ„์ „์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•จ์œผ๋กœ์จ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

3. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ช‡ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ๊ณ ๋ คํ•ด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

  • ํŒจํ‚ค์ง€ ๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ: esbuild๋‚˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ๋Š” ํŒจํ‚ค์ง€๋“ค์˜ ๋ฒ„์ „์„ ์ตœ์‹ ์œผ๋กœ ์œ ์ง€ํ•˜๋Š” ๊ฒ๋‹ˆ๋‹ค. yarn.lock ํŒŒ์ผ์„ ์ˆ˜๋™์œผ๋กœ ์ˆ˜์ •ํ•˜์—ฌ ์›ํ•˜๋Š” ๋ฒ„์ „์„ ๋ช…์‹œํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฒˆ๋“ค๋Ÿฌ ์„ค์ • ์กฐ์ •: Webpack์ด๋‚˜ Vite์˜ ์„ค์ •์—์„œ ์บ์‹œ ํŒŒ์ผ ๊ฒฝ๋กœ๋ฅผ ๋‹ค๋ฅธ ๊ณณ์œผ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, cacheDir ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ .cache ํด๋”์˜ ์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Yarn ์„ค์ • ์กฐ์ •: ํŒจํ‚ค์ง€์˜ ํŠน์ • ์„ค์ •, ์˜ˆ๋ฅผ ๋“ค์–ด preferUnplugged ์„ค์ •์„ ํ†ตํ•ด node_modules๊ฐ€ ์ƒ์„ฑ๋˜์ง€ ์•Š๋„๋ก ์œ ๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ฒฐ๋ก 

ํŠน์ • ์ƒํ™ฉ์—์„œ node_modules ํด๋”๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์€ ์ด๋Ÿฐ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ ๋•Œ๋ฌธ์ด๋ฉฐ, ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์˜์กด์„ฑ ๋ฒ„์ „์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ฑฐ๋‚˜, ๋ฒˆ๋“ค๋Ÿฌ์˜ ์„ค์ •์„ ์กฐ์ •ํ•˜๋Š” ๋“ฑ์˜ ์กฐ์น˜๊ฐ€ ํ•„์š”ํ•œ ๊ฑธ๋กœ ์ƒ๊ฐ๋ฉ๋‹ˆ๋‹ค!

Yarn์ด ์•ž์œผ๋กœ ๋” ๋ฐœ์ „ํ•˜๋ฉด์„œ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋“ค์ด ์ ์  ํ•ด๊ฒฐ๋  ๊ฒƒ์œผ๋กœ ์ƒ๊ฐ๋˜๋‚˜, ๊ทธ๋•Œ๊นŒ์ง€๋Š” ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ์ธ์ง€ํ•˜๊ณ  ์ ์ ˆํžˆ ๋Œ€์‘ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•  ๊ฒƒ ๊ฐ™๋„ค์š”.

 

 

๐Ÿ“ƒ ์ฐธ๊ณ  ๋ฌธํ—Œ  
yarn ๋ฃฐ๋ถ
GitHub - esbuild๊ฐ€ Yarn PnP ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— node_modules/.cache ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ƒ์„ฑ

 

+ Recent posts