Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/heonys/webpack-react-enterprise
Complete A-Z React Setup for Enterprise-grade Application from Scratch
https://github.com/heonys/webpack-react-enterprise
chakra cypress emotion husky jest msw react react-oauth react-query recoil storybook tailwindcss testing-library typescript webpack
Last synced: 6 days ago
JSON representation
Complete A-Z React Setup for Enterprise-grade Application from Scratch
- Host: GitHub
- URL: https://github.com/heonys/webpack-react-enterprise
- Owner: Heonys
- Created: 2023-11-06T04:22:26.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2024-01-26T20:02:10.000Z (10 months ago)
- Last Synced: 2024-01-27T04:26:48.193Z (10 months ago)
- Topics: chakra, cypress, emotion, husky, jest, msw, react, react-oauth, react-query, recoil, storybook, tailwindcss, testing-library, typescript, webpack
- Language: TypeScript
- Homepage:
- Size: 19 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# webpack-react-enterprise
### π κ°μ
"webpack-react-enterprise"λ μΉν©μ μ¬μ©νμ¬ React μ΄ν리μΌμ΄μ μ ꡬμΆνκΈ° μν μ μ₯μμ λλ€. Create React App νΉμ Viteκ³Ό κ°μ λ²λ€λ¬λ₯Ό μ¬μ©νλ©΄ μμ°μ±μ ν¬κ² ν₯μμμΌ μ£Όμ§λ§ Webpackμ μ§μ μ€μ νκ³ Babel, TypeScript λ± νμν λꡬλ€μ μ§μ μ€μΉνλ©° νλ‘μ νΈλ₯Ό ꡬμ±νλ©° μ½λ μ€ν리ν , λ²λ€ μ΅μ ν λ± μΉν©μ μ§μ λ€λ£¨κ³ κ·Έ λμ μ리μ μ€μ λ°©λ²μ λν μ΄ν΄λλ₯Ό λμΌ μ μλ κ²μ λͺ©νλ‘ ν©λλ€. μ΄λ₯Ό ν΅ν΄ React νλ‘μ νΈμ νμν λͺ¨λ μμλ₯Ό μμ ν μ μ΄νλ©΄μ, λ λ§μ μ μ°μ±κ³Ό 컀μ€ν°λ§μ΄μ§ κ°λ₯μ±μ μ 곡ν©λλ€.### π― λͺ©ν
1. μΉν©μ μ¬μ©νμ¬ μ§μ React μ΄ν리μΌμ΄μ μ ꡬμΆνλ λ°©λ²μ μ΄ν΄νκ³ μ΅νκΈ°
2. νμν λͺ¨λ μμλ₯Ό κ°μΆ React μ ν리μΌμ΄μ κ°λ°νκΈ°
3. μΉν© μ€μ , Babel, TypeScript λ±μ λꡬλ₯Ό μ§μ μ€μΉνκ³ μ€μ νμ¬ νλ‘μ νΈμ 컀μ€ν°λ§μ΄μ§ κ°λ₯μ± ν보νκΈ°
4. enterprise μμ€μ νλ‘μ νΈμ νμν κΈ°λ₯κ³Ό ꡬ쑰 ꡬννκΈ°### π Features
- **[React](https://ko.legacy.reactjs.org/)**: UI λΌμ΄λΈλ¬λ¦¬
- **[Typescript](https://www.typescriptlang.org/)**: νμ μμ μ±κ³Ό κ°λ° μμ°μ± ν₯μ
- **[Tailwind](https://tailwindcss.com/), [Emotion](https://emotion.sh/docs/introduction)** λͺ¨λ κ°λ₯ν μ μ°ν μ€νμΌλ§ μ§μ
- Emotion κΈ°λ°μ **[Chakra-UI](https://chakra-ui.com/)** μ»΄ν¬λνΈ μ 곡
- **[Eslint](https://eslint.org/)** μ **[Prettier](https://prettier.io/)**: μΌκ΄λ μ½λ μ€νμΌ μ μ§
- **[Jest](https://jestjs.io/)**, **[Testing Library](https://testing-library.com/)**: μ λ ν μ€νΈμ ν΅ν© ν μ€νΈ
- **[Cypress](https://www.cypress.io/)**: E2E ν μ€νΈ
- **[Storybook](https://storybook.js.org/)**: μ»΄ν¬λνΈ λ¨μμ λ¬Έμν νκ²½ μ 곡
- **[MSW](https://mswjs.io/)**: λΈλΌμ°μ APIλͺ¨νΉ λ° ν μ€νΈ κ°ν
- **[Recoil](https://recoiljs.org/ko/)** κ³Ό **[React Query](https://tanstack.com/)** λ₯Ό ν΅ν μν κ΄λ¦¬
- **[Zod](https://zod.dev/)**: λ°μ΄ν° μ ν¨μ± κ²μ¬
- **[react-hook-form](https://react-hook-form.com/)**: κ°λ ₯ν form κ΄λ¦¬
- **[i18next](https://www.i18next.com/)**: λ€κ΅μ΄ μ§μ
- **[react-oauth](https://github.com/MomenSherif/react-oauth)**: κ΅¬κΈ μμ λ‘κ·ΈμΈ μ§μ
- **[Commitizen](https://github.com/commitizen/cz-cli)**: μΌκ΄λ μ»€λ° λ©μμ§ κ΄λ¦¬
- **[react-helmet](https://github.com/nfl/react-helmet)**: λ©νλ°μ΄ν°λ₯Ό λμ μΌλ‘ κ΄λ¦¬
- **[Husky](https://typicode.github.io/husky/)**, **[lint-staged](https://github.com/lint-staged/lint-staged)**: Git ν μ μ΄μ©ν μ»€λ° κ·μΉ κ°μ
- **[Express](https://expressjs.com/)**: λΉλλ μ΄ν리μΌμ΄μ νΈμ€ν μ© μΉμλ² μ 곡### π μμνκΈ°
μ μ₯μ 볡μ λ° ν¨ν€μ§ μμ‘΄μ± μ€μΉ
```shell
git clone --depth=1 https://github.com/Heonys/webpack-react-enterprise.git my-project-name
cd my-project-name
yarn install
```κ°λ° λͺ¨λμμ μμ
```shell
yarn dev
```λΈλΌμ°μ μμ `http://localhost:3000`μ μ΄μ΄ νμΈνμΈμ
### π μ€ν¬λ¦½νΈ
`package.json`μμ λ€μκ³Ό κ°μ μ€ν¬λ¦½νΈλ€μ΄ μ¬μ©μ΄ κ°λ₯ν©λλ€
- `dev`: webpack κ°λ° μλ² μ€ν
- `build`: 리μ‘νΈ μ΄ν리μΌμ΄μ λΉλ
- `serve`: λΉλμ΄ν production νκ²½μμ μ€ν
- `storybook`: storybook μλ² μμ
- `build:storybook`: storybook μλ² λΉλ
- `commit`: commitizenμΌλ‘ git commit
- `test`: ν μ€νΈ μ€ν
- `test:coverage`: ν μ€νΈ 컀λ²λ¦¬μ§ νμΈ
- `test:e2e`: cypress μ€ν
- `prepare`: ν¨ν€μ§ μ€μΉμ huskyκ° μλμΌλ‘ Git ν μ μ€μΉ
- `check-types`: tscλ‘ νμ 체ν¬### π οΈ νλ‘μ νΈ κ΅¬μ‘°
```shell
.
βββ README.md # README file
βββ .husky # Husky configuration
βββ .storybook # Storybook configuration
βββ .yarn # Yarn package manager settings
βββ cypress # Cypress E2E test
βββ server # Express server folder
βββ public # Public assets folder
βββ src
β βββ api # HTTP request
β βββ atom # Recoil state management
β βββ components # React components
β βββ context # React context
β βββ hook # Custom hooks
β βββ i18n # i18next configuration
β βββ mocks # MSW configuration
β βββ pages # Page component
β βββ routes # React routing
β βββ stories # Storybook story
β βββ test # Unit & Integration test
β βββ types # Type definitions
β βββ util # Utility function
```### π i18n
### π’ express
### π commitizen
### βοΈ νκ²½ λ³μ
### π² MSW
### π Storybook
### π§ͺ ν μ€νΈ
- **λ¨μ ν μ€νΈ λ° ν΅ν©ν μ€νΈ**: `yarn test`μ ν΅ν Jest μ€ν
- **End-to-end tests**: `yarn e2e`μ ν΅ν Cypress μ€ν