๐ 1. ํ๋ก์ ํธ ์์ฑํ๊ธฐ
npm install -g yarn
- Create React App ๊ธฐ๋ฐ ํ๋ก์ ํธ ์์ฑ
yarn create react-app wedding --template typescript
๐ 2. Yarn Berry(PnP) ์ค์
- node_modules ํด๋ ์ญ์
- berry ๋ฒ์ ์ค์ :: yarn set version berry
yarn set version berry
- root ๊ฒฝ๋ก์ .yarnrc.ymlํ์ผ ์์ฑ
//.yarnrc.yml ํ์ผ์ pnp ์ค์ ํ๊ธฐ (node_modules ๋์ pnp๋ฐฉ์ ์ฌ์ฉ!)
nodeLinker: pnp
- yarn install
yarn install
ํ์ฅ ํ๋ก๊ทธ๋จ ZipFS ์ค์น
Yarn Berry์์ TypeScript๋ฅผ ์ฌ์ฉํ ๋ zipfs ํ์ฅ ๊ธฐ๋ฅ์ด ํ์ํ ์ด์ ๋ Yarn์ Plug'n'Play(PnP) ๋ฐฉ์ ๋๋ฌธ์ด๋ค. Yarn Berry๋ node_modules ํด๋ ์์ด .zip ํ์ผ์ ํตํด ์์กด์ฑ์ ๊ด๋ฆฌํ๋๋ฐ, ์ด๋ ํ์ผ ์์คํ
์ .zip ํ์์ผ๋ก ์ ์ฅํ๊ณ ๋ถ๋ฌ์ค๋ ๊ณผ์ ์์ zipfs๊ฐ ํ์ํ๋ค.๋ฐ๋ผ์ zipfs๋ฅผ ์ค์นํ๋ฉด, Yarn Berry์ PnP ๋ฐฉ์๊ณผ TypeScript ํ๊ฒฝ ๊ฐ์ ํธํ์ฑ์ ๋์ฌ์ค๋ค. zipfs ํ์ฅ ๊ธฐ๋ฅ์ .zip ํ์ผ๋ก ์ ์ฅ๋ ํจํค์ง๋ค์ ํ์ผ ์์คํ
์ฒ๋ผ ์ฝ์ ์ ์๋๋ก ์ง์ํ์ฌ, PnP ํ๊ฒฝ์์ TypeScript๋ ๊ธฐํ ํด์ด ์ ์์ ์ผ๋ก ํจํค์ง ํ์ผ์ ํ์ํ ์ ์๊ฒ ํ๋ค.
6. Yarn Berry์ Plug'n'Play(PnP) ๋ฐฉ์๊ณผ VSCode์ ํตํฉ ์ค์
yarn dlx @yarnpkg/sdks vscode
๐ฅ๐ฟ ์ฃผ์!!
๋ช
๋ น ํ๋ ํธ(Ctrl+Shift+P)๋ฅผ ์ด๊ณ TypeScript: Restart TS Server"๋ฅผ ์ ํ → "Use Workspace Version”๋ถ๋ชจ ํด๋๊ฐ ์๋ ํ๋ก์ ํธ ํด๋ ์์ฒด์์ VSCode๋ฅผ ์ด์ด์ผ ํ๋ค!!!! vscode๊ฐ ๋ถ๋ชจํด๋๋ก ์ด๋ ค์๋ค๋ฉด Use Workspace Version๊ฐ ๋ณด์ด์ง ์์...
์ฐธ๊ณ :: https://github.com/yarnpkg/berry/issues/4788
๐ 3. typescript ์ค์
์ํฌ์คํ์ด์ค ๋ฒ์ ์ ๋ง๋ ํ์
์คํฌ๋ฆฝํธ ๋ฒ์ ์ ์ฌ์ฉํ๋๋ก ํ์ฉํด์ฃผ๊ธฐ
๐ 4. .gitignore์ ์ถ๊ฐ
# yarn zero install
.yarn/*
!.yarn/cache
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions
# ์ฐธ๊ณ :: https://yarnpkg.com/getting-started/qa#which-files-should-be-gitignored
๐ 5. App.test.tsx์ ํ์
์๋ฌ ์ ๊ฑฐํ๊ธฐ
yarn remove @testing-library/jest-dom
yarn add -D @types/testing-library__jest-dom @testing-library/jest-dom
๐ 6. yarn start!!!!!!!!!!!!!!!!!!!!!!!
yarn start