React template in javascript/Typesciprt base using vite
- Using Nextgeneration Frontend tool (Vite / yarn berry)
- Freedom of choice of language
- ECMAScript (javascript)
- ECMAScript with JsDoc typecheck
- Typescript
- Collaboration between library and vscode extension
- Well-defined folder structure
- Document Automation
- [Light, Dark] theme changer
- Multilingual support
- IDE environment integration
- No need to setting for develop environment
Latest ✔ | Latest ✔ | Latest ✔ | Latest ✔ | Latest ✔ |
- Install
Dev Containers
extension - Download template
npx degit comnori/vite-template-awesome-soho my-app
- git initialization
git init
Project
├── assets // like svg
├── components // atomic design
│ ├── atoms
│ ├── molecules
│ ├── organisms
│ └── templates
├── config // project configuration
│ ├── i18n // i18next resource
│ │ ├── {lang} // ISO 639-1 Language Code [en,...,ko]
│ │ │ └── translation.json
│ ├── MenuItems.js
│ └── Router.js
├── context // React Context
│ └── {context name} // Context domain name
│ ├── components // Context related components
│ └── hooks // Context related hooks
├── features // Redux
│ └── {reducer name}
├── hooks // common hooks
├── lib // Library configuration
│ ├── components
│ └── {library name}Config.js
├── pages // Pages
│ ├── {domain}
│ │ ├── {page}
│ ├── {page}
│ │ ├── components // children for page
│ │ ├── {page}.jsx
│ │ ├── {page}.module.scss // module scss
└── utils // common utils
-
Enable(true) / Disable(false)
tsconfig.json
{ ... "checkJs": true, ... }
-
Optionnal
If you want to apply or not apply type check to only some parts, check the guide below.
-
Using typescript
src/config/Router.js
src/config/Menu.js
yarn doc
doc
folder created
yarn type
type
folder created
-
Ant Design Default theme
The initial theme acts as the system's theme setting.
-
Ant Design Customize theme
To modify the Antd Theme, set the designToken according to the Ant Design Customize Theme guide.
src/lib/themeConfig.js
const themeConfig = { themeName: getSystemCurrentTheme, designToken: { components: { Layout: { headerHeight: 64, }, }, }, componentSize: "middle", };
- JSDoc to typedoc
- Vitest
- Storybook
- Cypress