Yarn
Yarn 1.x workspaces
์๊ธฐ์์ผ๋ก yarn์ workspaces ๊ธฐ๋ฅ์ด npm์ workspaces ๊ธฐ๋ฅ๋ณด๋ค ๋จผ์ ๋์ด
yarn 1.0 ๋ถํฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅ
npm link์ ๋ง์ฐฌ๊ฐ์ง๋ก yarn link๋ฅผ ๋์ ํ์ฌ ์ ์ธ์ ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅ
package.json ํ์ผ์ workspaces ์์ฑ์ ํตํด ์ ์ (npm๊ณผ ๋์ผ)
ํ๋ก์ ํธ ๋ด ๋ชจ๋ ํจํค์ง ์์กด์ฑ์ด ํจ๊ป ์ค์น๋๊ณ ๊ด๋ฆฌ๋์ด ์ถฉ๋์ด ์ ๊ณ , ์ต์ ํ ์ ๋ฆฌ
์ต์ข ์ ์ผ๋ก npm๊ณผ ๊ฐ์ ๋ฐฉ์์ด๊ธฐ ๋๋ฌธ์ ๊ฐ์ ํ๊ณ๋ฅผ ์ง๋
yarn 1.x์์๋ ๋ฃจํธ ํ๋ก์ ํธ์
private:true
๊ฐ ์ค์ ๋์ด ์์ด์ผ ํ๋ค.
Yarn Classic(1.x)์ ๋ฃจํธ ์ํฌ์คํ์ด์ค์์ ํจํค์ง๋ค์ ์ํฌ์คํ์ด์ค๋ก ์ง์ ํ๋ ์ ์ธ์ ์ธ ์ฒ๋ฆฌ๊ฐ ํ์ํ๋ค.
Globs Pattern์ด๋?
~~
์์กด์ฑ ์ถ๊ฐ
์ ์ฒด ์ํฌ์คํ์ด์ค ๋ช ๋ น์ด ์คํ
yarn workspace run [๋ช ๋ น์ด]
์ํฌ์คํ์ด์ค ์์กด๊ด๊ณ ์ถ๋ ฅ
yarn workspaces info
package A์์ package B๋ฅผ ์ฌ์ฉํ ๋ package.json์ ๋ํ๋์๋ฅผ ๋ช ์ํ์ง ์์๋ node_modules์ ๋์๋ฐฉ์์ ๋ฐ๋ผ์ root node_modules์ ์ ๊ทผ์ด ๊ฐ๋ฅํ์ฌ ์ฌ์ฉ์ด ๊ฐ๋ฅํ ๋ฌธ์ ๊ฐ ์์
Yarn Berry workspaces
yarn berry๋ yarn์ ๋๋ฒ ์งธ ๋ฒ์ ์ด๊ณ 2.x๋ถํฐ ์์ํ์ฌ ํ์ฌ๋ 4.x๊น์ง ๋์ด
๊ธฐ๋ณธ์ ์ผ๋ก ๋ช ์์ ์ธ ์์กด ๊ด๊ณ๋ฅผ ๋ํ๋ด์ผ ์ฌ์ฉ์ด ๊ฐ๋ฅํจ
node_modules ์ ํจํค์ง๋ฅผ ์ ์ฅํ๋ ๋ฐฉ์์ด ์๋ ํจํค์ง๋ฅผ ์์ถํ์ฌ ํ๊ฐ์ ํ์ผ์
.yarn/cache
ํด๋์ ์ํ์ ์ผ๋ก ์ ์ฅํจ์ด๋ฌํ ๋ฐฉ์์
Plug'nPlay(PnP)
๋ผ ๋ถ๋ฆ์ํ์ ์ผ๋ก ์กด์ฌํ๊ธฐ์ ๋น ๋ฅด๊ฒ ์ฐพ์ ์ ์์
์์ถํ์ผ์ ์ค์นํ๊ธฐ ๋๋ฌธ์ ํ์ผ ๊ฐ์๊ฐ ๊ฐ์ํ์ฌ ์ค์น์๋๊ฐ ๋น ๋ฆ
Zero Install์ ์ด์ฉํ์ฌ, ์ ์ฅ์(repo)์์ ํจ๊ป ๊ด๋ฆฌํ ์๋ ์์
ํฌํ ๋ํ๋์๊ฐ ๋ฐ์ํ์ง ์์
Corepack์ด๋?
Yarn ๊ฐ๋ฐ์๊ฐ ๋ง๋ ๋๊ตฌ๋ก, package.json์ ์ฌ์ฉํ ํจํค์ง ๋งค๋์ ์ ๊ทธ ๋ฒ์ ์ ๋ช ์ํ๊ณ , ํด๋น ํ๋ก์ ํธ๋ฅผ ์ฌ์ฉํ ๋ ์๋์ผ๋ก ๊ทธ ํจํค์ง ๋งค๋์ ๋ฅผ ์ฌ์ฉํ๋๋ก ํด์ฃผ๋ ๊ธฐ๋ฅ
์ฝ์ดํฉ์ Node.js ํน์ ๋ฒ์ ์ด์์์ ํฌํจ๋์ด์์ด ๋ฐ๋ก ์ค์นํ์ง ์์๋ ์ฌ์ฉ๊ฐ๋ฅ
๋ค๋ฅธ ํจํค์ง๋งค๋์ ์ปค๋งจ๋ ์ฌ์ฉ์ corepack์ด ์๋ฌ๋ฅผ ์๋ดํด์ค
Dependencies
yarn berry๋ ์๋ก์ด ์์กด์ฑ์ ์ถ๊ฐํด๋ node_modules ํด๋๊ฐ ์๊ธฐ์ง ์์
.yarn/
์ ์ค์น๊ฐ ๋๋๋ฐ ๋ง์ฝ ํด๋น ํด๋ ํ์๋ก ์ถ๊ฐ๊ฐ ๋์ง ์๋๋ค๋ฉด ๊ธ๋ก๋ฒํ๊ฒ ์์กด์ฑ์ ๊ด๋ฆฌํ๊ณ ์๋๋ค๋ฅธ ๊ณณ์ ์ถ๊ฐ๊ฐ ๋๊ฒyarn config enableGlobalCache
๋ฅผ ์ ๋ ฅํ๋ฉด value: true๋ก ์ถ๋ ฅ์ด ๋จyarn config set enableGlobalCache false
์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ๊ฒ ๋๋ฉด ์ค์ ์ด false๋ก ๋ฐ๋๋ฉด์
.yarn/cache
์ ์์กด์ฑ์ด ์ค์น๋๋ค..yarnrc.yml
์์ ํด๋น ์ค์ ํ์ธ ๊ฐ๋ฅ
Yarn berry worskpace์ ์์ฌ์ด์
Plug'n'Play(PnP)๋ ๊ธฐ์กด์ ํจํค์ง ๊ด๋ฆฌ๋ฐฉ์๊ณผ๋ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์ด์ํ ์์๊ฐ ์๋ค.
IDE์์ ์ง์ ์ฌ์ฉํ๋ ๋ง์ ๋๊ตฌ๋ค์ SDK๋ฅผ ํตํด ์ฐํ ํธ์ถํ ์ ์๋๋ก ์ถ๊ฐ์ ์ธ ์ค์ ์ด ํ์ (Typescript, Lint ๋ฑ)
VSCode๋ ๋ฐ๋ก Extension์ ์ค์นํด์ผํจ
Install์ด ํญ์ ๋น ๋ฅธ๊ฒ์ ์๋
Zero Install์ ์ด์ฉํ์ฌ ์์ถํ์ผ์ ๊ฐ์ง๊ณ ์์ ํ๋ฉด, ์ ์ฅ์ ์์ฒด๊ฐ ๋งค์ฐ ์ปค์ง์ ์๋ค.
Push, Pull์ด ๋๋ ค์ง๋ค๊ฑฐ๋.. ์์ฒญ ํฐ ํ๋ก์ ํธ์์ ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์์
Zero Install์ด๋ผ๊ณ ์ ๋ง ์ค์นํ์ง ์๋๊ฒ์ ์๋
์ฌ๋ฌํ๊ฒฝ์์ ์๋ก์ดํ์ผ์ ๋ง๋ค์ด๋ด๋ ๊ฒฝ์ฐ ๋๋ฌธ์ ์๋ก ์ค์นํด์ฃผ์ด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์
Last updated