ํ๋ก์ ํธ ํด๋์ node_modules๋ฅผ ์ ์ฅํ์ง ์๋๋ก ๋ชจ๋ npm ์ข ์์ฑ์ ์ ์ญ (์ค์)์ผ๋ก ์ค์นํ๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
๋ด๊ฐ ์ผํ๋ ํ์ฌ๊ฐ ์ฌ์ฉํ๋ ํ๋ ์ ์ํฌ๊ฐ ์๋นํ ๋ฌด๊ฒ๊ณ ๊ฐ๊ฐ ์๋ฐฑ๋ง ๊ฐ์ 1kb ํ์ผ๋ก ๊ฐ๋ ์ฐฌ ์์ฒด node_modules ํด๋๊ฐ์๋ 40 ๊ฐ ์ด์์ ํ๋ก์ ํธ๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ฌธ์ ๋ฅผ ์ผ์ผ ํต๋๋ค.
์ด๊ฒ์ ๋ด SSD์์ ์์ฒญ๋ ์์ ๊ท์คํ ๊ณต๊ฐ์ ์ฐจ์งํ๋ฉฐ ํ๋ก์ ํธ์ package.json์ด ๋ด ๋ก์ปฌ ์ ์ฅ์์ ๋งํฌ ๋ ์ํ์์ ์ด๋ฌํ ํจํค์ง๋ฅผ ํ ๋ฒ๋ง ์ค์นํ ์ ์๋ค๋ฉด ์ ๋ง ์ข์ ๊ฒ์ ๋๋ค.
@alshdavid ๋ require
์ข
์์ฑ์ด๋ฉฐ ๋ก์ปฌ์ ์ค์นํด์ผํฉ๋๋ค. ์ ์ญ ๋ชจ๋์ ํ๋ก์ ํธ์ ํน์ ํ ๋ช
๋ น ์ค ๋๊ตฌ๊ฐ ์๋๋๋ค.
imo ์ด๊ฒ์ yarn์ด ์ ์ญ ๋ชจ๋์ ๋ก์ปฌ ๋๋ ํ ๋ฆฌ์ ์ฌ๋ณผ๋ฆญ ๋งํฌํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ์ง ์๋ ํ ์ค์ ๋ก ์์ฌ ์ง๋ฌธ์ด ์๋๋๋ค.
๋๋ ์ด๊ฒ์ด ์ ์ฉ ํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ค. ๋ฌธ์ ๋ Node.js๊ฐ ์์
์ด ํน์ ๋ฐฉ์์ผ๋ก ์ํ๋๊ณ ๋ชจ๋์ด ํน์ ๋ฐฉ์์ผ๋ก ์ ๋ ฌ๋๊ธฐ๋ฅผ ๊ธฐ๋ํ๊ธฐ ๋๋ฌธ์ Node.js๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ์์
๋ฐฉ์์ ๋ณ๊ฒฝํ๊ธฐ๊ฐ ์ด๋ ต๋ค๋ ๊ฒ์
๋๋ค. ๐ ๋ชจ๋ ์ฌ๋์ด Node.js๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์๋๊ธฐ ๋๋ฌธ์ ๋๋ ํ ๋ฆฌ ์ด๋ฆ์ node_modules
์์ ๋ค๋ฅธ ์ด๋ฆ์ผ๋ก ๋ฐ๊พธ๊ณ ์ถ์ต๋๋ค.
์ฑ๋ฅ ๋ฐ ๋์คํฌ ๊ณต๊ฐ์ ๋ํ ์ ์ฌ์ ์ธ ์๋ฃจ์ ์ผ๋ก ์ฌ๋ณผ๋ฆญ ๋งํฌ ๋ฐ ํ๋ ๋งํฌ์ ๊ด๋ จ๋ ๋ช ๊ฐ์ง GitHub ๋ฌธ์ ๊ฐ ์์ต๋๋ค. # 499๋ ํ๋ ๋งํฌ๋ฅผ ๋ค๋ฃน๋๋ค. ํ์ผ์ ์ฌ์ ํ โโํ์ผ ์์คํ ์์ ์ฝ๊ฐ์ ๊ณต๊ฐ์ ์ฐจ์งํฉ๋๋ค. BTRFS ๋๋ ZFS์ ๊ฐ์ Copy-on-Write ํ์ผ ์์คํ ์ด์ด ์์ ์๋ ๋์์ด ๋ ๊ฒ ๊ฐ์ต๋๋ค. ํ์ผ์ด ์ค์ ๋ก ๋ณต์ฌ๋์ง ์๊ณ ๋์ ์บ์ ๋๋ ํ ๋ฆฌ์ ์๋ณธ ํ์ผ์ ๊ฐ๋ฆฌํฌ ๊ฒ์ ๋๋ค.
https://github.com/rstacruz/pnpm ์ ์ ํํ ์ด๊ฒ์ํฉ๋๋ค. --preserve-symlinks
๋
ธ๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํฉ๋๋ค.
์ด๊ฒ์ ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฒ์ # 499์ฒ๋ผ ๋ณด์ด๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ์ฐฌ์ฑํ์ฌ ์ด๊ฒ์ ๋ซ์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
https://github.com/rstacruz/pnpm ์ ์ ํํ ์ด๊ฒ์ํฉ๋๋ค.
--preserve-symlinks
๋ ธ๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํฉ๋๋ค.