Skip to content

comnori/vite-template-awesome-soho

Repository files navigation

Vite React Template for SOHO

React template in javascript/Typesciprt base using vite

Visitors

Features

  1. Using Nextgeneration Frontend tool (Vite / yarn berry)
  2. Freedom of choice of language
  3. Collaboration between library and vscode extension
  4. Well-defined folder structure
  5. Document Automation
  6. [Light, Dark] theme changer
  7. Multilingual support
  8. IDE environment integration
  9. No need to setting for develop environment

Browser Support

Chrome Firefox Safari Opera Edge
Latest ✔ Latest ✔ Latest ✔ Latest ✔ Latest ✔

Installation

  1. Install Dev Containers extension
  2. Download template
npx degit comnori/vite-template-awesome-soho my-app
  1. git initialization
git init

Main Library

Language

javascript typesciprt

Created by

vite

Library

react react-router ant design redux axios sass i18next

Dev tools

eslint prettier .env EditorConfig devcontainer Sonar Lint vitest storybook Cypress

Src Folder structure

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

Project configuration

Javascript Type check enable or disable

  1. Enable(true) / Disable(false)

    tsconfig.json

    {
      ...
      "checkJs": true,
      ...
    }
  2. Optionnal

    If you want to apply or not apply type check to only some parts, check the guide below.

    JS Projects Utilizing TypeScript

  3. Using typescript

Router

src/config/Router.js

MenuItems

src/config/Menu.js

JsDoc generation

yarn doc

doc folder created

declaration export

yarn type

type folder created

Library configuration

Theme Config

  1. Ant Design Default theme

    The initial theme acts as the system's theme setting.

  2. 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",
    };

Working

  • JSDoc to typedoc
  • Vitest
  • Storybook
  • Cypress