
ํ์ฌ ํ๋ก์ ํธ ์ค ๋ค๋ฅธ ํ์ ๋ถ์ ์์
๋ด์ฉ์ ์ด์ด ๋ฐ์ ์์
ํ ์ผ์ด ์์๋ค. ๋ฐฅ๊ฐ์ ํ๊ธฐ ์ํด ํด๋น ๋ธ๋ฐ์น๋ฅผ ๊ฐ์ ธ์ ์ค์นํ๊ณ ๋๋ ์์
๋ ์ปดํฌ๋ํธ ์ค swiper๊ฐ ์ ์ฉ๋ ๊ณณ๋ง๋ค ๋นจ๊ฐ ๋ฌผ๊ฒฐ ์ค์ด ๋์ค๊ฑฐ๋ ธ๋ค.

ํ์ ๋ถ์ ์์
ํ๊ฒฝ์์ ํด๋น ์ค๋ฅ๊ฐ ๋ํ๋์ง ์์๋ค. ๋ธ๋ฐ์น๋ฅผ ๊ฐ์ ธ์์ yarn์ผ๋ก installํ๋ฉฐ ๋ฌด์ธ๊ฐ ์ถฉ๋์ด ๋ ๋ฏํ๋ค. build์์ ์กํ๋ ์๋ฌ๋ ์๋์๊ธฐ ๋๋ฌธ์ ์ผ๋จ ๋นจ๊ฐ ์ค์ ๋ฌด์ํ๊ณ ์์
์ ์งํํ๋ค. ๋ง์ง๋ง์ ๋ง์ง๋ง์ ๋ง์ง๋ง์ผ๋ก ๋ฏธ๋ฃจ๋ค๊ฐ ์ ๋ง ๋ง์ง๋ง์ ํด๊ฒฐํ๋ค.
ํด๋น ์๋ฌ ๋ฉ์ธ์ง๋ฅผ ๊ฒ์ํ๋ฉด ์ฌ๋ฌ ๋ธ๋ก๊ทธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์ ์๋์ด ์๋ค. ๋น์ฐํ ๋ชจ๋ ์๋ฌ๋ ์ฝ๊ฒ ํด๊ฒฐํด์ผ ์ ๋ง์ด๊ธฐ ๋๋ฌธ์ ๊ฐ์ฅ ์์ฌ์ ๋ณด์ด๋ ๊ฒ๋ถํฐ ๋ฐ๋ผํด๋ณด์.
์ง๋ฐ๋ฆฌ ๊ฐ๋ฐ์ ์ธ์์์ ๊ฐ์ฅ ๋จผ์ ๋ฐฐ์ด ์๋ฌ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋จผ์ yarn.lock ํ์ผ๊ณผ node_modules ํด๋๋ฅผ ์ง์๋ณด๊ณ ๋ค์ ์ค์น๋ฅผ ์งํํ๋ ๊ฒ์ด๋ค.

๋ ๋ฆฌ ์๋ค.
๋จผ์ ํด๋น ๊ธ์ ๋ฐ๊ฒฌํ์ฌ ๋ฐ๋ผํด๋ดค๋ค.
pakageํ์ผ์์ @types/react์ @types/react-dom์ dependencies์ ์ฎ๊ฒจ๋ดค์ง๋ง, ๊ธ์ ์์ฑํ ๋ถ๋ ์คํจํ ๋ฐฉ๋ฒ์ด๋ค.
๋ค๋ง ํด๋น ์๋ฃจ์
์ ์ฝ์ด๋ณด๋ React 18๋ฒ์ ์ ์ฌ์ฉํ๊ณ ์๋ค๋ฉด type ๋ฌธ์ ๊ฐ ์์ ์ ์๋ค๋ ๊ฑธ ์๊ฒ ๋์๋ค.
์
๋ง๊ฐ์ @types/react์ ๋ฒ์ ์ 17๋ก ๋ด๋ฆฌ๋ฉด ํด๊ฒฐ์ด ๋๋ค๋ ๊ท๋๋ฅ์ ์ป์ด๋ค์ด ๋ฒ์ ์ ๋ด๋ฆฌ๋ swiper์์ ๋นจ๊ฐ ์ค์ด ์ฌ๋ผ์ก๋ค! ๊ทธ๋ฌ๋ ์ด์ ๋ค๋ฅธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ปดํฌ๋ํธ์์ ํด๋น ์๋ฌ๊ฐ ๋์ค๊ฑฐ๋ฆฌ๊ธฐ ์์ํ๋ค.

stackoverflow๋ฅผ ๋ค์ ธ๋ณด๋ฉฐ typescript config options์ ๋ฐ๊ฟ๋ณด์์ผ๋ ๋ด ๊ฒฝ์ฐ์ ํด๊ฒฐ๋์ง ์์๋ค. ๊ทธ๋ฌ๋ค ์ด๋ ํ๋ฅญํ ์ธ๊ตญ์ธ์ด react repo์์ ํด๋น issue๊ฐ ์ด๋ฆฐ ๋งํฌ๋ฅผ ๊ฑธ์ด์ค ๊ฒ์ ๋ฐ๊ฒฌํ๋ค.
ํด๋น ์๋ฃจ์
์ npm์ ๊ธฐ์ค์ผ๋ก ์์ฑ๋์๋๋ฐ yarn์ npm์ฒ๋ผ ๋ฐ๋ก ์ถ๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ์ฌ preinstall์ ์ค์ ํด์ค ํ์๋ ์๋ค.
๋์ ๊ฐ์ ๊ณ ํต์ ๊ฒช๋ ์ฌ๋์๊ฒ ๋ค๋ฅธ ๋ชจ๋ ๋ง์ ssapsori์ผ ๋ฟ. ๋ฐ๋ก ์ฝ๋๋ก ๋์ด๊ฐ๊ฒ ๋ค.
/// package.json
"dependencies": {
...
"@types/react": "17.0.38",
},
"resolutions": {
"@types/react": "17.0.30"
},
resolution ์ต์
์ ๋๊ฐ์ด 17๋ฒ์ ์ @types/react๋ฅผ ๋ด์์ค ํ yarn.lock ํ์ผ์ ์ญ์ ํ๊ณ ๋ค์ ์ค์นํ๋ฉด ํด๊ฒฐ ๋๋ค.
yarn ๋ฌธ์๋ฅผ ์ฝ์ด๋ณด๋ฉด ํด๋น ์ต์ ๊ฐ์ ๋ํ ๋ด์ฉ์ด ์ฐ์ฌ์๋ค.
Selective dependency resolutions
๋ฌธ์์ ์ ๋ชฉ์ ์ฐ์ฌ์ง ๊ฒ์ฒ๋ผ ๋์ถฉ '์ ํ์ ์ข
์์ฑ ํด๊ฒฐ'์ ๋์์ฃผ๋ ์ต์
์ด๋ค.
๋ด๊ฐ package ํ์ผ์์ @types/react์ ๋ฒ์ ์ 17๋ก ๊ณ ์ ํด๋์๋ค๊ณ ํด๋, ์ค์น๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ node_modules์์ ๊น๋ณด๋ฉด ์ข
์ข
๋ค๋ฅธ ๋ฒ์ ์ ๊ฐ์ง๊ณ ์๋ค. ํด๋น ์์กด์ฑ ๋ชจ๋์ด @types/react์ ๋ฌด์กฐ๊ฑด ์ต์ ๋ฒ์ ์ผ๋ก ๋ฐ๊ณ ์๋๋ค๊ฑฐ๋, ๋๋ณด๋ค ๋์ ๋ฒ์ ๊ฐ์ง๊ณ ์๋ค๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ ์ ์๋ค.
resolutions ์ต์
์ ์ฃผ์ง ์์ ์ฑ๋ก yarn list [module name] ๋ช
๋ น์ด๋ก ๊ฐ module์ ์ด๋ค ์์ผ๋ก ์ค์น๋์ด ์๋์ง ํ์ธํด๋ณด์.
โโ @types/hoist-non-react-statics@3.3.4
โ โโ @types/react@18.2.31
โโ @types/mui-image@1.0.1
โ โโ @types/react@18.2.31
โโ @types/react-dom@18.0.9
โ โโ @types/react@18.2.31
โโ @types/react-swipeable-views@0.13.1
โ โโ @types/react@18.2.31
โโ @types/react-transition-group@4.4.8
โ โโ @types/react@18.2.31
โโ @types/react@17.0.30
โโ react-intl@6.2.7
โโ @types/react@18.2.31
๋๋ถ๋ถ module์ด ์ต์ ๋ฒ์ ์ ๋ฐ๊ณ ์์ผ๋ฏ๋ก 17๋ฒ์ ๊ณผ๋ ์ถฉ๋์ด ๋๋ค. ๊ทธ๋ผ ์ด์ resolutions ์ต์
์ ์ค ์ฑ๋ก ๋ค์ yarn list [module name] ๋ช
๋ น์ด๋ฅผ ์ค๋ณด์.
โโ @types/react@17.0.30
dependencies์ ๊ฐ์ ๋ฒ์ ์ผ๋ก ์ค์น๋์์ผ๋ฏ๋ก ๋ ์ด์ ๋ค๋ฅธ ๋ฒ์ ์ ์ถ๋ ฅํ์ง ์๋๋ค.

react 18์ ๋ง์ ๋ณํ๋ฅผ ๊ฐ์ง๊ณ ์๋ ๋ฒ์ ์ด๋ฏ๋ก, type ์ ์ ๋ํ ๋ง์ด ๋ฐ๋์๋ค. ์๋ง์ ๋ชจ๋๊ณผ ์์กด์ฑ์ ๋ง์ถ๊ธฐ ์ํด์ ๋น๋ถ๊ฐ์ 17๋ฒ์ ์ผ๋ก ๊ณ ์ ์์ผํ ๊ฒ ๊ฐ๋ค. ์ฐธ๊ณ ๋ก resolutions์ ๋ํ ๋ ์์ธํ ์ค์ ๊ฐ์ ํด๋น ๋ฌธ์์ ์ ์ ๋ฆฌ๋์ด ์๋ค.
https://classic.yarnpkg.com/lang/en/docs/selective-version-resolutions/
https://github.com/vercel/next.js/issues/42292
https://velog.io/@sweetpumpkin/ThemeProvider-cannot-be-JSX-element-%EC%97%90%EB%9F%AC