ํ์ฌ ๋ชจ๋
ธ๋ ํฌ์์ Yarn์ ์ฐ๊ณ ์๊ณ , ์ผ๋ ํธ๋ก ๊ตฌ์กฐ๋ผ์ ๊ฐ๊ฐ์ ๋ ๋๋ฌ์ ๋ชจ๋ ๋์ผํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ด ์ค์น๋์ด ์์ด, ๋ฃจํธ์๋ง ๋๊ณ ํ์ ์ํฌ์คํ์ด์ค์์ peerDependencies๋ก ๊ฐ์ ธ์ค๋ ๋ฐฉ์์ ๋ํ ์๊ฒฌ์ด ์์๋๋ฐ, ๋๋ ํ์ ์ด ์์ด์ ๊ด๋ จ๋ ๋ด์ฉ๋ค์ ์ฐพ์๋ณด์๋ค.
( + ์ ํ์ฌ์์๋ ๋ฃจํธ์์ override๋ก ํต์ ํ๋ ์์ผ๋ก ์ผ๋๋ฐ, ์ง๊ธ ํ์ฌ์์ ๋ค๋ฅธ ๊ตฌ์กฐ๊ฐ ์์ ์๋ ์์ด ํ์ ์ด ์๊ธฐ๋ ํ๋ค.)
๊ฒฐ๋ก
์ด๊ธฐ์ ํธํ์ง๋ง, ๊ท๋ชจ๊ฐ ์ปค์ง์๋ก ๋ฃจํธ ๋จ์ผ ์ค์น๋ ๋๋ค์ฑ๊ณผ ์ ์ง๋ณด์ ๋น์ฉ์ ํค์ฐ๊ธฐ ๋๋ฌธ์, ๋ฒ์ ์ ์ฑ ์ ๋ฃจํธ์์ ํต์ ํ๊ณ , ์ค์น/์ฌ์ฉ์ ๊ฐ ์ํฌ์คํ์ด์ค๊ฐ ๋ช ์ํ๋ ํจํด์ด ๊ฐ์ฅ ์์ ์ ์ด๋ค.
์ด์
1) ์ ๋ น ์์กด์ฑ ๋ง๊ธฐ
์ฑ๋ง๋ค package.json์ A/B/C๋ฅผ ์ง์ ์ ์ด๋๋ฉด, ๋๋ฝ๋ ๊ฑด ๋ฐ๋ก "Cannot find module" ์๋ฌ๋ก ๋ํ๋๊ธฐ ๋๋ฌธ์, ๋๋ฒ๊น
์ด ๊ฐ๋จํด์ง๋ค.
2) ๋น๋ ํด์ด ์ฐพ๋ ์์น ๋ฌธ์
Vite๋ PostCSS๋ ํ์ฌ ์ํฌ์คํ์ด์ค ๊ธฐ์ค์ผ๋ก ํ๋ฌ๊ทธ์ธ์ ์ฐพ๋๋ฐ, ๋ง์ฝ ์ฑ ์ชฝ์ A/B/C๊ฐ ์์ผ๋ฉด ๊ฐ๋ ํด์์ด ๊ผฌ์ผ ์๋ ์๋ค๊ณ ํ๋ค.
๊ทธ๋์ ๋ ํธ๋ก ์ฒ๋ผ ๋ ๋๋ฌ๊ฐ ์ฌ๋ฌ ๊ฐ์ธ ๊ตฌ์กฐ๋ผ๋ฉด, ๊ฐ์ ๋ช
์ํ๊ณ ๊ณต์ฉ ์ค์ ๋ง ๊ณต์ ํ๋ ์ชฝ์ด ํจ์ฌ ์์ ์ !
๋ฐ๋ผ์ ์์ ๊ฐ์ ์ด์ ๋ก ์๋์ ๊ฐ์ด ๊ตฌ์กฐ๋ฅผ ๋ณ๊ฒฝํ์๋ค.
- ๊ณต์ฉ ์ค์ ๋ง ํจํค์งํ: library/config-*
- ์ฌ๊ธฐ์๋ peerDependencies๋ก๋ง ์๊ตฌ
- ๊ฐ ์ฑ(app/renderer-a, app/renderer-b)์ devDeps์ A/B/C ์ง์ ์ค์น
- ๋ฃจํธ์์ ๋ฒ์ ๋ง ๊ฐ์ ํจ.
{
"resolutions": {
"a": "8.4.47",
"b": "3.4.14",
"c": "10.4.20"
}
}resolutions / constraints ์ฐจ์ด
resolutions
- ๋ฒ์ override ๋๊ตฌ
- ํธ๋ฆฌ ์ด๋๊ฐ์์ ์ฐ์ด๋ ์์กด์ฑ ๋ฒ์ ์ ๋ฃจํธ์์ ๊ฐ์ ๋ก ๊ณ ์ ํ๋ค.
- package.json ์์ "resolutions": { "react": "18.3.1" } ์ด๋ ๊ฒ ์ ์ผ๋ฉด, ๋ชจ๋ ์ํฌ์คํ์ด์ค/๋ชจ๋ transitive deps๊ฐ react@18.3.1๋ก ํต์ผ๋๋ค.
- npm์ overrides๋ ๋น์ทํ ๊ฐ๋ .
์ฅ์ : "ํ์์์ react@18.2 ์์ฒญํ์ด๋ ๋ฌด์กฐ๊ฑด 18.3.1์ ์ค์นํด๋ผ" ๊ฐ์ ๊ธด๊ธ ํจ์น/๋ณด์ ํ ๊ณ ์ ์ ์ ์ฉ.
๋จ์ : "๊ฐ ์ํฌ์คํ์ด์ค๊ฐ react๋ฅผ ์ ์ธํด์ผ ํ๋ค" ๊ฐ์ ๊ท์น์ ๊ฐ์ ํ์ง ๋ชปํจ.
constraints
- ์ ์ฑ /๊ท์น ์์ง
- ์ด๋ค ์ํฌ์คํ์ด์ค๊ฐ ์ด๋ค ์์กด์ฑ์ ๊ฐ์ ธ์ผ ํ๋์ง, devDeps์๋ง ์์ด์ผ ํ๋์ง, ๋ฒ์ ๋ฒ์๋ ์ด๋ค์ง ๋ฑ์ ๋ฃฐ๋ก ๊ฐ์ ํจ.
ex) ๋ชจ๋ ์ํฌ์คํ์ด์ค๊ฐ react๋ฅผ ์ด๋ค๋ฉด ๋ฐ๋์ ^18.3.1 ๋ฒ์๋ฅผ ์จ์ผ ํ๋ค
gen_enforced_dependency(WorkspaceCwd, "react", "^18.3.1") :-
workspace_has_dependency(WorkspaceCwd, "react").์ฅ์ : ๊ท์น ์๋ฐ์ CI์์ ์ก์๋ด๊ณ , ํ ์ฐจ์์ ํฉ์๋ฅผ ๊ฐ์ ํ ์ ์์.
๋จ์ : ์ ์ธ๋ง ํด๋จ๋๋ฐ transitive dep์์ ๋ฒ์ ์ถฉ๋์ด ๋๋ฉด, ๊ฒฐ๊ตญ resolutions ๊ฐ์ ๊ฑธ๋ก override ํ์ํจ.
https://yarnpkg.com/configuration/manifest#resolutions
'๐ WIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| Storybook v8 preset ์๋ฌ ํธ๋ฌ๋ธ์ํ (0) | 2025.08.31 |
|---|---|
| Tailwind v4 ๋ง์ด๊ทธ๋ ์ด์ : Dynamic spacing utilities (0) | 2025.08.24 |
| ์ด๋ฏธ์ง ์๋ํฐ ๋ง๋ค๊ธฐ-1 (2) | 2025.08.10 |
| 8์ ์ฒซ์งธ ์ฃผ.. (6) | 2025.08.03 |
| CSR+SSR+RSC+ Hydration (2) | 2025.07.27 |