๋ชจ๋ ธ๋ฆฌํฌ์ ๋ํด์๋ Rokt33r - Monorepo and Lerna์์ ์ค๋ช ์ ์ ํด์ฃผ๊ณ ์๊ณ , ์ด ๊ธ์ Yarn workspace๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๊ฐ์ .
์๋ฌด๋๋ ํจํค์ง๊ฐ ๋ง์์ง๋๊น ์ด๋ค์ด ์์กดํ๋ ๋ชจ๋์ ์ค์นํ๋๋ฐ ์๊ฐ์ด ์ข ์ค๋ ๊ฑธ๋ฆฌ๋๋ฐ, ํ์์ ๋ก์ปฌ์ด๋ ์ ํจ์ค ํ๊ฒฝ์์ ๋น๋๋ฅผ ํ๋ฉด ์ด์ ์ ์ค์นํด๋์๋ ๋ชจ๋๋ค์ด ๊ทธ๋๋ก ๋จ์์์ด์ ํฐ ๋ถํธ์ ๋๋ผ์ง ๋ชปํ๋ค. ๊ทธ๋ฌ๋ค๊ฐ ์ด๋ฒ์ ๋์ปค์์ ๋น๋๋ฅผ ํ๊ธฐ๋ก ํ๋ฉด์ ์ด๋ป๊ฒ ํด์ผ ํจ์จ์ ์ผ๋ก ๋ชจ๋๋ค์ด ์ค์น๋ ๋ ์ด์ด๋ฅผ ์ฌ์ฌ์ฉ ํ ์ ์์๊น ๋ฐฉ๋ฒ์ ์ฐพ์๋ณด์๋ค.
๊ฒฐ๋ก ๋ถํฐ ๋งํ๋ฉด ๊น์์ผ ํ ํจํค์ง๊ฐ ๊ฐ๋ค๋ฉด ํจํค์ง๋ฅผ ์๋ก ์ค์นํ์ง ์๋ ๊ฒ์ด๋ค.
**/node_modules
๋ฅผ ์บ์๋ก ์ฌ์ฉํ๊ธฐCaching Yarn workspaces on CircleCI๋ผ๋ ๋ธ๋ก๊ทธ ํฌ์คํ
์์ ๋ณธ ๋ฐฉ๋ฒ์ผ๋ก ์ต์๋จ์ node_modules
ํด๋๋ง ์บ์ฑํ์ง ๋ง๊ณ ๊ฐ ํจํค์ง ์์ ๋ค์ด์๋ node_modules
๋ค๋ ํจ๊ป ์บ์ฑํ๋ ๊ฒ์ด๋ค (๋ฌผ๋ก yarn.lock์ด ๋ฐ๋๋ฉด ์บ์๋ฅผ ๋ฌดํจํ). CircleCI ์ฒ๋ผ ์บ์ฑํ ํด๋๋ฅผ ์ง์ ํ ์ ์๊ณ , ๋ workspace ๊ฐฏ์๊ฐ ๋ง์ง ์๋ค๋ฉด ๊ฐ์ฅ ๊น๋ํ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ํ ์ ์๊ฒ ๋ค. ๋ค๋ง ๋์ปค์์ ๋น์ทํ ๋๋์ ๋ด๋ ค๊ณ ์ผ๋จ ํจํค์ง ์ ์ฒด๋ฅผ ์ค์นํ๊ณ , **/node_modules
๋ง ๋ณต์ฌํด์ ์ฐ๋ ๋ฐฉ๋ฒ์ ํด๋ณด๊ณ ์๋๋ฐ ๋ณต์ฌํ๋ ๊ณผ์ ์์ ๋ญ๊ฐ ๋งํฌ๊ฐ ๊นจ์ง๋์ง ์ ์ ๋ฌ๋ค. ์๋๋ฉด ์์ ํด๋๋ฅผ ์ฎ๊ธฐ์ง ๋ง๊ณ ์์ค๋ง ์ง์ฐ๋ ๋ฐฉ๋ฒ๋ ์์ ๊ฒ ๊ฐ์๋ฐ ์ด๊ฑด ํด๋ณด๊ณ ์ ์
๋ฐ์ดํธ.
**/package.json
์ด๋ yarn.lock
๋ง ๋ณต์ฌํด์ ๋์ปค ๋ ์ด์ด๋ฅผ ์ฌ์ฌ์ฉํ๊ธฐCaching strategy for dependencies with Docker - lerna/lerna#858์์ ๋ณธ ๊ฒ์ผ๋ก, ๋์ปค์์ ํ์ผ์ด๋ ํด๋๋ฅผ ๋ณต์ฌํ ๋ ์ฒดํฌ์ฌ์ด ๊ฐ์์ผ ๋ ์ด์ด๊ฐ ์ฌํ์ฉ์ด ๋๋ค๋ ์ ์ ์ด์ฉํด์ ์ ์ฒด ์์ค ์ฝ๋ ๋์ yarn.lock
์ด๋ package.json
, ๊ทธ๋ฆฌ๊ณ ๊ฐ workspace์ package.json
๋ง ๋ณต์ฌํด์ ๋ชจ๋์ ์ค์นํ๋ ๊ฒ์ด๋ค. ์ด๋ฌ๋ฉด ์์ค์ฝ๋๊ฐ ๋ฐ๋์ด๋ ์ ํ์ผ๋ค์ด ๋ฐ๋์ง ์์ผ๋ฉด ์์กด์ฑ์ด ์ค์น๋ ์ํ๊น์ง์ ๋์ปค๊น์ง๋ ์ฌ์ฌ์ฉ์ด ๋๋๊น ์ด๋ฏธ์ง ๋ง๋๋ ์๋๊ฐ ํจ์ฌ ๋นจ๋ฆฌ์ง๋ค. ์ด๊ฒ๋ ๋ฐ๋ผํด ๋ดค๋๋ฐ ์ ๋ ๊ฒ๋ง ๋ณต์ฌํด์๋ ์์ yarn ๋ช
๋ น์ด๋ก ์ค์น๊ฐ ์๋์๋ค.
(5/16) ์ค๋ 2๋ฒ์ ๋ค์ ํด๋ดค๋๋ฐ ์ค์น๊ฐ ์๋๋๊ฑด package.json, tsconfig ๋ฑ์ ๋ค๋ฅธ ๋ชจ๋์ ์ ์ด์ฃผ์ง ์์์ ๊ทธ๋ฌ๊ณ ์ ์ ์ด์ฃผ๋๊น ๊น๋ํ๊ฒ ์ ๋์๋ค. ์๋ ์จ์๋ ๋ฐฉ๋ฒ์ ๋นํด์ ๊ด๋ฆฌ๋ ํธํ๊ณ ์๋๋ ๋น ๋ฅด๊ณ ์ฌ๋ ค๋ชจ๋ก ๋ง์กฑ.
์์ฌ์ด๋๋ก ์ผ๋จ ์ ์ฒด ์ค์นํ ์ด๋ฏธ์ง๋ฅผ base๋ก ์ผ์์ ๊ทธ ์์์ ์๋ก ์ฝ๋๋ฅผ ๋ฐ๊ณ , yarn์ ๋๋ ค์ ํ์ํ ํจํค์ง๊ฐ ์์ผ๋ฉด ์๋ก ๋ฐ๋ ๊ฒ๋ ๋๋ฆ ๋ฐฉ๋ฒ์ด ๋๋๋ฐ, ์ ์ฐ๋ ์์ค์ฝ๋๊ฐ ๋จ์์๋ ๊ฒ์ด ๋ญ๊ฐ ์ฐ์ฐํด์ ์ข์ ๋ฐฉ๋ฒ์ ์๋ ๊ฒ ๊ฐ๋ค. 1์ด๋ 2์ค์์ ์ ๋๋ ๋ฐฉ๋ฒ์ ์ฐพ์์ ์ด ํฌ์คํธ๋ฅผ ์ ๋ฐ์ดํธ ํ ์ ์์ผ๋ฉด ์ข๊ฒ ๋ค.