pnpm

  • pnpm์€ ๊ธฐ์กด์˜ ๋ฐฉ์‹์„ ํ•ด์น˜์ง€ ์•Š๊ณ , ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์ธ ๋ฐฉ์‹์„ ์‚ฌ์šฉ

  • ๋ชจ๋…ธ๋ ˆํฌ๋ฅผ ์ง€์›, ์—„๊ฒฉํ•œ ์˜์กด์„ฑ ํ•ด์„์„ ํ†ตํ•ด ์˜๋„ํ•˜์ง€ ์•Š๊ฒŒ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ํ”ผํ•จ

  • ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์žฅ์ ์œผ๋กœ ์ธํ•ด ๋ชจ๋…ธ๋ ˆํฌ๋ฅผ ์šด์˜ํ•  ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ํŒจํ‚ค์ง€๋งค๋‹ˆ์ €๋กœ ๋ถ€์ƒ์ค‘

    • turborepo ๊ณต์‹๋ฌธ์„œ์—์„œ๋„ ๊ถŒ๊ณ ํ•จ

pnpm

  • ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์ธ ํŒจํ‚ค์ง€๋งค๋‹ˆ์ €

  • ๋ชจ๋…ธ๋ ˆํฌ๋ฅผ ์ง€์›,

  • ํ‰ํƒ„ํ•˜์ง€ ์•Š์€ node_modules ๊ฐ€ ๊ธฐ๋ณธ์ด๊ธฐ ๋•Œ๋ฌธ์— ์—„๊ฒฉํ•œ ์˜์กด์„ฑ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅ

  • ์‹œ์Šคํ…œ ๋‚ด ๋‹จ์ผ ํŒจํ‚ค์ง€ ์Šคํ† ์–ด์— ๋ชจ๋“  ์˜์กด์„ฑ์„ ๋ณด๊ด€ํ•˜๊ธฐ์— ๋””์Šคํฌ ์ ˆ์•ฝ

  • ํ•„์š”ํ•œ ์˜์กด์„ฑ์„ ์‹๋ณ„ํ•˜์—ฌ ์Šคํ† ์–ด๋กœ ๊ฐ€์ ธ์˜ค๊ณ , ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ํ•˜๋“œ๋งํฌํ•˜๋Š” ๊ณผ์ •์„ ๊ฐ€์ง€๊ธฐ ๋•Œ๋ฌธ์— ์„ค์น˜์†๋„ ๋น ๋ฆ„

    • ํ”„๋กœ์ ํŠธ์— ์˜์กด์„ฑ์ด ์„ค์น˜๋  ๋•Œ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€์— ์‚ฌ์šฉ๋˜๋Š” ๋˜‘๊ฐ™์€ ์˜์กด์„ฑ์ผ ๊ฒฝ์šฐ(===์Šคํ† ์–ด์— ์กด์žฌํ•˜๋Š”) ํ•˜๋“œ๋งํฌ ๋ฐฉ์‹์œผ๋กœ ๊ฐ€์ ธ์˜ด (์ฆ‰, ์ถ”๊ฐ€๋กœ ์„ค์น˜ํ•˜์ง€ ์•Š์Œ)

    • ์Šคํ† ์–ด์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์˜์กด์„ฑ๋“ค๋งŒ ์ƒˆ๋กœ ์„ค์น˜ํ•จ

  • ๊ธฐ๋ณธ์ ์œผ๋กœ pnpm์€ symlink๋ฅผ ์ด์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ์˜ ์ง์ ‘์ ์ธ ์˜์กด์„ฑ๋งŒ์„ ๋ชจ๋“ˆ ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ฃจํŠธ๋กœ ์ถ”๊ฐ€ํ•จ

    • ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์—์„œ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ์˜์กด์„ฑ๋“ค์€ ๋ฃจํŠธ ์›Œํฌ์ŠคํŽ˜์ด์Šค์— ๊ด€๋ฆฌ๋˜์ง€ ์•Š๊ณ  ๋‚ด๋ถ€์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํŒฌํ…€ ๋””ํŽœ๋˜์‹œ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ฒŒ๋จ

์‹ค์Šต

ls -al packages/b/node_modules

pnpm์ด ์˜์กด์„ฑ ์šฉ๋Ÿ‰์„ ์•„๋ผ๋Š” ๋ฐฉ๋ฒ•

  • node_modules/.pnpm/ ์„ Virtual Store๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

  • .pnpm ํ•˜์œ„๋กœ ์ถ”๊ฐ€๋œ ํŒจํ‚ค์ง€๋“ค์€ ์‹ค์ œ๋กœ ํ•ด๋‹น ์œ„์น˜์— ์„ค์น˜๋œ๊ฒƒ์ด ์•„๋‹Œ ๋‹ค๋ฅธ ์ €์žฅ์†Œ์— hard link ๋ฐฉ์‹์œผ๋กœ ๋ณต์‚ฌ๋˜์–ด์žˆ๋Š”๊ฒƒ

  • hard link๊ฐ€ ๋œ๊ฒƒ์€ ๊ฐ๊ฐ ์šฉ๋Ÿ‰์„ ์ฐจ์ง€ํ•˜๋Š”๊ฒƒ์ด ์•„๋‹Œ ์ค‘์•™ ์Šคํ† ์–ด์—๋งŒ ์šฉ๋Ÿ‰์„ ์ฐจ์ง€ํ•˜๊ฒŒ ๋จ?? -> ์•„์ด๋…ธ๋“œ ๋ฐฉ์‹?

  • ์—ฌ๋Ÿฌ๊ตฐ๋ฐ์—์„œ ์‚ฌ์šฉ(์„ค์น˜) ํ•˜๋”๋ผ๋„ ํ•œ ๊ณณ์˜ ์šฉ๋Ÿ‰๋งŒ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋””์Šคํฌ ์šฉ๋Ÿ‰์„ ๋งŽ์ด ์ค„์ผ์ˆ˜์žˆ๋Š” ๊ธฐ๋ฒ•

pnpm Virtual Store

pnpm config get store-dir  //์Šคํ† ์–ด ์œ„์น˜ ํ™•์ธ ๋ฐฉ๋ฒ•
pnpm config set store-dir ~/.pnpm-store //์Šคํ† ์–ด ์œ„์น˜ ์„ค์ •

Last updated