Yarn Berry์ pnpm ๋ชจ๋ ๋น ๋ฅธ ์๋์ ํจ์จ์ ์ธ ๋์คํฌ ์ฌ์ฉ์ ๋ชฉํ๋ก ํ์ง๋ง ๋ด๋ถ ๋์ ๋ฐฉ์์ด ๋ค๋ฆ ๋๋ค.
Yarn Berry๋ .yarn/cache์ ZIP ํ์ผ๋ก ํจํค์ง๋ฅผ ์ ์ฅํ๊ณ , pnpm์ node_modules/.pnpm์ ์ ์ฅํ๋ฉด์ ์ ์ญ ์ ์ฅ์์ ํจํค์ง๋ฅผ ํ๋๋งํฌ๋ก ์ฐ๊ฒฐํฉ๋๋ค.
node-modules: ๊ธฐ์กด npm ๋ฐฉ์๊ณผ ์ ์ฌํ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐpnp: .pnp.cjs ํ์ผ์ ์ด์ฉํด ์์กด์ฑ์ ์ง์ ๊ด๋ฆฌisolated: ๊ธฐ๋ณธ ์ค์ , ํ๋๋งํฌ์ ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ํ์ฉํ์ฌ ๋์คํฌ ๊ณต๊ฐ ์ ์ฝhoisted: npm ๋ฐฉ์์ฒ๋ผ ํํํ๋ ๊ตฌ์กฐ๋ก ๊ตฌ์ฑpnp: .pnp.cjs ํ์ผ์ ๊ธฐ๋ฐ์ผ๋ก ์์กด์ฑ์ ๊ด๋ฆฌํ์ฌ node_modules ๋๋ ํ ๋ฆฌ๋ฅผ ์์จ ์ ์์Plug'n'Play (PnP)๋?
PnP๋ ๊ธฐ์กด์ node_modules ํด๋ ์์ด๋ ํจํค์ง๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ๋ง๋ ์๋ก์ด ๋ฐฉ์์
๋๋ค.
PnP์ ์๋ฆฌ
.pnp.cjs ํ์ผ์ ์ ์ฅํฉ๋๋ค.npm run dev๋ก ๊ฐ๋ฐ ์๋ฒ ์คํ ๋๋ npm run build๋ก ๋น๋ ์ํ), .pnp.cjs๊ฐ Node.js์ require() ๋๋ import ์์ฒญ์ ๊ฐ๋ก์ฑ์ด, ์ ํํ ํจํค์ง ์์น๋ฅผ ์ฆ์ ์ฐพ์์ค๋๋ค.PnP์ ์ฅ์
Yarn Berry๋ ํจํค์ง ์บ์๋ฅผ git์ ํฌํจํ ์ ์์ด, ๋ณ๋์ yarn install ๊ณผ์ ์์ด ๋ฐ๋ก ์คํํ ์ ์์ต๋๋ค.
Yarn Berry๋ ํ๋ฌ๊ทธ์ธ ์์คํ ์ ์ง์ํ์ฌ, ์ปค์คํ ๋ช ๋ น์ด๋ ์๋ํ๋ ์์ ์ ์ถ๊ฐํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํ์ฉํ๋ฉด ๋ฐฐํฌ, ์ฝ๋ ํฌ๋งทํ ๋ฑ์ ์ํฌํ๋ก์ฐ๋ฅผ ๊ฐ์ ํ ์ ์์ต๋๋ค.
Yarn Berry์ pnpm์ ๋ชจ๋ ๋น ๋ฅด๊ณ ํจ์จ์ ์ธ ํจํค์ง ๊ด๋ฆฌ ๋ฐฉ์์ ์ ๊ณตํ์ง๋ง, ํ๋๋งํฌ์ ์ฌ๋ณผ๋ฆญ ๋งํฌ ๊ฐ์ ๊ณ ์ ๋์๋ฐฉ์์ด ์๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ๊ณ ๋ คํด์ ์ ํํด์ผ ํฉ๋๋ค.