0.11 ์ดํ(๊ทธ๋ฌ๋ 0.12 ์ด์ ) ์ ๋ Yarn ์์ ๊ณต๊ฐ์ ์ฌ์ฉํ์ฌ ์ ์ฅ์๋ฅผ ๋จ์ผ ์ ์ฅ์๋ก ์ฌ๊ตฌ์ฑํ๊ณ pegjs ๋ชจ๋์ ๋๋ถ๋ถ @pegjs ์ ์๋ ๋ ๋ฆฝ ๋ชจ๋๋ก ๋ค์ ๊ตฌํํ ๊ณํ์ ๋๋ค( @peg ์ ๊ณต์ ๋ฌธ๋ฒ ํฌํจ ).
์๋๋ ํ์ฌ ๊ตฌํํ๋ ค๋ ๋ชจ๋ ๋ชฉ๋ก์ด์ง๋ง 0.12๊ฐ ๋ฆด๋ฆฌ์ค๋๊ธฐ ์ ์ ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
0.12.x
)๋ฅผ ๊ฐ๋ฆฌํค๋ Node.js์ฉ ๋
๋ฆฝ ์คํํ ๋ฆด๋ฆฌ์ค์ด๊ฒ์ ๋ค์ด์คํธ๋ฆผ ์ฌ์ฉ์๊ฐ ์์ฌ๋ก ์ ํํด์ผ ํจ์ ์๋ฏธํฉ๋๊น?
์ฐ๋ฆฌ ์ค ๋ง์ ์ฌ๋๋ค์ด ์ ๋ขฐํ์ง ์๋ ํ์ฌ์์ ๊ด๋ฆฌํ๋ ๋ค๋ฅธ ๋น๋ ์ธํ๋ผ์์ ์ธํฐ๋ท์ ์ฃผ์ ๋๊ตฌ ์ค ํ๋๋ฅผ ํ์ ์คํ์ ์ธ ๋น๋ ์ ๋ต์ผ๋ก ์ฎ๊ธฐ์ง ๋ง์ญ์์ค.
์ค์ด ์ฃฝ์ด๊ฐ๊ณ ์์ ๊ณต๊ฐ์ด ์ ๋๋ก ์ค๊ณ๋์ง ์์์ต๋๋ค.
๋๋ถ๋ถ์ ๋ ธ๋ ์ฌ์ฉ์๋ ์์ฌ๋ก ์ ํํ์ง ์์ต๋๋ค.
https://stackoverflow.com/questions/46947557/do-yarn-workspaces-work-with-npm-too
๋ชจ๋ ์ฌ๋์ด ๋๊ตฌ๋ฅผ Facebook์ ๊ฒ์ผ๋ก ์ ํํ ํ์๊ฐ ์๋ ์ผ๋ฐ์ ์ธ ์ต์ ๋น๋ ๊ตฌ์กฐ๋ฅผ ๊ตฌ์ถํ๋ ๋ฐ ๋์์ ๋๋ฆฌ๊ฒ ์ต๋๋ค.
๋กค์ ๊ณผ babel(๋๋ ๊ธฐํ ์ฌ๋ฌ ์ค์ )์ ์ฌ์ฉํ์ฌ ์ค๋ฒํค๋ ์์ด ์ผ๋ฐ ES5๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ์์ ํ ์๋ก์ด ์ธํ๋ผ๊ฐ ํ์ํ์ง ์์ต๋๋ค.
์ด ๊ณผ์ ์์ typescript ๋ฐ flowtype ์ง์, es6 ๋ชจ๋ ์ง์ ๋ฐ ๊ธฐํ ํญ๋ชฉ๊ณผ ๊ฐ์ ๋ค๋ฅธ ์ ๋ง ์ค์ํ ํญ๋ชฉ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
@StoneCypher ๋ง์ ๋๋ฃ๋ฅผ ์ก์๋ผ ๐ Yarn์ NPM์ ๋์์ผ ๋ฟ์ด๋ฏ๋ก ๋ค์ด์คํธ๋ฆผ ์ฌ์ฉ์๋ NPM, Yarn ๋๋ ํ์
๋๋ ๋ค๋ฅธ ๋ง์ ๊ฒ์ ๊ฐ์ง ์ ์์ผ๋ฉฐ ์์
๊ณต๊ฐ์ ๋ํด ๊ฑฑ์ ํ ํ์๊ฐ ์์ต๋๋ค . ์ด ๋ฆฌํฌ์งํ ๋ฆฌ ๋ด์ root package.json( "private": true
) , ์์์ ์ธ๊ธํ ๋ชจ๋ ํ์ ๋ชจ๋์ NPM์ ๊ฒ์๋ ๋
๋ฆฝ์ ์ธ ๋ชจ๋๋ก ์ฝ๋์ ๋ค๋ฅธ ๋ถ๋ถ์ ๋ถ๋ฆฌํ๊ณ ๋ ๋๋ ๊ฐ๋ฐ ๋ฐ/๋๋ ๋ชจ๋ ์ฌ๋์ ์ถ์ ๋ ์ฝ๊ฒ ๋ง๋ญ๋๋ค. PEG.js ์ปดํ์ผ๋ฌ ํดํน.
๋ํ Rollup๊ณผ Babel์ ์๋ก ๋ค๋ฅธ ๋ฌธ์ ์ Yarn์ ๋ค๋ฃน๋๋ค.
์ด๊ฒ์ด ๋๋ฅผ ์์ฌ๋ก ๋ง๋ค์ง ์๋ ํ
๊ทธ๋์, ๋น์ ์ ๋๋ฅผ ์์ฌ๋ก ๋ง๋ค์์ต๋๋ค. yarn
์ด ์ฃฝ์ด๊ฐ๊ณ ์๊ณ Windows์์ ์ ๋๋ก ์๋ํ์ง ์๋ ๋ฎ์ ํ์ง์ ๋๊ตฌ ๋๋ฌธ์ ๋ณํฉ์ ๊ฑฐ๋ถํ ๋ค๋ฅธ ์ฌ๋๋ค์ ์ฌ๋ฌ PR์ด ์ด๋ฅผ ๋ค์ ๋นผ๋ ค๊ณ ํ์ต๋๋ค.
yarn
์(๋) ๊ฐ์น๊ฐ ์์ต๋๋ค.
yarn
๋ ์๋นํ ์ฅ๋ฒฝ์ ์ ๊ณตํฉ๋๋ค. ๋ง์ ์ฌ๋๋ค์ด ๋น์ ์ ๋๊ธฐ ์ํด ์๋ก์ด ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ์ค์นํ์ง ์์ ๊ฒ์
๋๋ค(๋๋ ๋ถํดํ๊ธฐ ์ ์ ์ฌ๋ฌ ๋ฒ ๊ฑฐ๋ถํ์ต๋๋ค). ๊ทธ๋ฆฌ๊ณ ๋ง์ ๋ค๋ฅธ ์ฌ๋๋ค์ ์์
์ ์ฑ
๋๋ฌธ์ ํ์ฉ๋์ง ์์ต๋๋ค.
npm
์ ๋์์ด ๋ณ๊ฒฝ๋์์ต๋๋ค. yarn
์ด(๊ฐ) ์ ์ง๋์ง ์์์ต๋๋ค. yarn
ํ๋์ ์ด์ ์ปค๋ฎค๋ํฐ ๊ธฐ๋์ ํฌ๊ฒ ๋ค๋ฆ
๋๋ค.
monorepo๋ ๋ํ ๊ฐ์น๋ฅผ ์ ๊ณตํ์ง ์๊ณ , ๋ณต์กํ ์ถ๊ฐ ๋น๋ ๋จ๊ณ๋ฅผ ์์ฑํ๊ณ , ๊ท๋ฒ์ ๋ฌด์ํ๊ณ , ์ ์ฌ์ ๊ธฐ์ฌ์๋ฅผ ํผ๋์ค๋ฝ๊ฒ ํฉ๋๋ค.
์ด ๋ชจ๋ ๊ฒ์ ๋น์ ์ด ํ์ง ์๋ ๊ธฐ๋ฅ ์์ ๋ณด๋ค ํจ์ฌ ๋ ๋ง์ ์์ ์ด์์ต๋๋ค.
๋ด ์ด์ ์ ๊ธฐ์ ์ฑ๊ฒฉ์ ๋ํด ํผ๋์ค๋ฌ์ ํ์ จ์ ๊ฒ ๊ฐ์์.
์ด๊ฒ์ ์ฌ๋๋ค์ด ์ฐธ์ฌํ๋ ๊ฒ์ ๋ ์ด๋ ต๊ฒ ๋ง๋๋ ๋ญ๋น๋ ์์ ์ ๋๋ค(์ง๋ ๋ฌ๋ถํฐ ํ์ฌ "๋น์ ์ ์ทจ๋ฏธ ํ๋ก์ ํธ"๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฒ์ ๊ธฐ์ฌํ๋ ๊ฒ์ ๋ง ๊ทธ๋๋ก ๋ถ๊ฐ๋ฅํ๊ฒ ๋ง๋ค์์ผ๋ฉฐ ์ ๋ฉด์ ์ผ๋ก ๋์ฒดํ ๊ฒ์ผ๋ก ์์ํ๊ธฐ ๋๋ฌธ์ ์ค์ํ์ง ์์ต๋๋ค.)
์ด๋ ๊ฒ ํ๋ฉด ๋น๋ ์๋๊ฐ ๋๋ ค์ง๊ณ npm
์๋ ์์ง๋ง yarn
์๋ ์๋ ์ ๋๊ตฌ๊ฐ ์์ค๋ฉ๋๋ค.
Yarn์ 2018๋ ์ ์ฃฝ์ด๊ฐ๊ณ ์์์ต๋๋ค. ์ง๊ธ์ 2020๋ ์ ๋๋ค. Yarn์ ์ด์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฃฝ์์ต๋๋ค.
๋ช ๋ ๋์ ๋ด ์ปดํจํฐ์ ์ค์นํ ์ ์ด ์์ต๋๋ค. ๋๋ ๋น์ ์ ์ํด ๊ทธ๊ฒ์ ๋ค์ ์ค์นํด์ผํ์ต๋๋ค.
๋ฆฌํฌ์งํ ๋ฆฌ์ ๋งค์ฐ ์ค์ํ ์ฝ๋๋ฒ ์ด์ค ์์ ์๋ ๋ถ๊ตฌํ๊ณ ๋ฆด๋ฆฌ์ค ์์ด 3๋ ๋์ ์งํ๋๋ ํ๋ฆฐ์ง ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฐ์ธ ์ฝ๋๋ฒ ์ด์ค ๋์ ์ ์์ ์ธ ๊ฑด๊ฐํ ๊ฐ๋ฐ ํจํด์ ๊ฐ์ง ์ผ๋ฐ ํ๋ก์ ํธ๋ฅผ ๋ค์ ํ์ฉํ์ญ์์ค.
์, yarn
๊ฐ ๋ฌด์์ ํ๋์ง ์ค๋ช
ํ๋ ค๊ณ ํ๋ ๊ฒ์ ๋ณด์์ง๋ง yarn
๊ฐ ๋ฌด์์ ํ๋์ง ๋ชจ๋ ์๊ณ ์์ต๋๋ค.
๋น์ ์ ๋ด๊ฐ 2๋ ์ ์ ๋ง๋ค์ง ๋ง๋ผ๊ณ ์์ฒญํ๋ ๋ฐ๋ก ๊ทธ ์๋ก์ด ๊ธฐ๋ฐ ์์ค์ ๋ง๋ค์๊ณ , ๋น์ ์ ๋ด๊ฐ ๊ทธ๊ฒ์ด ์๋ํ์ง ์์ ๊ฒ์ด๋ผ๊ณ ๋งํ ๋ฐ๋ก ๊ทธ ์ด์ ๋ก ๊ทธ๊ฒ์ ํ์ฌ ๋ฒ๋ฆฌ๊ณ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@StoneCypher ๋ง์ ๋๋ฃ๋ฅผ ์ก์๋ผ ๐ Yarn์ NPM์ ๋์์ผ ๋ฟ์ด๋ฏ๋ก ๋ค์ด์คํธ๋ฆผ ์ฌ์ฉ์๋ NPM, Yarn ๋๋ ํ์ ๋๋ ๋ค๋ฅธ ๋ง์ ๊ฒ์ ๊ฐ์ง ์ ์์ผ๋ฉฐ ์์ ๊ณต๊ฐ์ ๋ํด ๊ฑฑ์ ํ ํ์๊ฐ ์์ต๋๋ค . ์ด ๋ฆฌํฌ์งํ ๋ฆฌ ๋ด์ root package.json(
"private": true
) , ์์์ ์ธ๊ธํ ๋ชจ๋ ํ์ ๋ชจ๋์ NPM์ ๊ฒ์๋ ๋ ๋ฆฝ์ ์ธ ๋ชจ๋๋ก ์ฝ๋์ ๋ค๋ฅธ ๋ถ๋ถ์ ๋ถ๋ฆฌํ๊ณ ๋ ๋๋ ๊ฐ๋ฐ ๋ฐ/๋๋ ๋ชจ๋ ์ฌ๋์ ์ถ์ ๋ ์ฝ๊ฒ ๋ง๋ญ๋๋ค. PEG.js ์ปดํ์ผ๋ฌ ํดํน.๋ํ Rollup๊ณผ Babel์ ์๋ก ๋ค๋ฅธ ๋ฌธ์ ์ Yarn์ ๋ค๋ฃน๋๋ค.