Overview
The frontend uses multiple configuration files to manage build tools, type checking, linting, and styling:vite.config.ts: Vite build tool configurationtsconfig.json: Root TypeScript configuration with project referencestsconfig.app.json: TypeScript configuration for application codetsconfig.node.json: TypeScript configuration for Node.js tooling (Vite config)eslint.config.js: ESLint linting rulestailwind.config.js: TailwindCSS utility classes configurationpostcss.config.js: PostCSS plugins (autoprefixer, Tailwind)
Vite Configuration
Vite is configured with a minimal setup optimized for React development.vite.config.ts
Key Features
- React Plugin:
@vitejs/plugin-reactenables React Fast Refresh and JSX transformation - Default Settings: Uses Vite’s optimized defaults for development and production
Common Customizations
- Custom Port
- Path Aliases
- Proxy API Calls
- Environment Variables
Change the development server port:
Build Configuration
Customize production build output:TypeScript Configuration
The project uses TypeScript project references for improved build performance.tsconfig.json (Root)
- App config: Application source code
- Node config: Build tool configuration files
tsconfig.app.json (Application)
Compiler Options Explained
Target & Module Settings
Target & Module Settings
target: "ES2020": Compile to ES2020 JavaScript (modern browsers)module: "ESNext": Use latest ECMAScript module syntaxlib: ["ES2020", "DOM", "DOM.Iterable"]: Include type definitions for modern JS and browser APIsuseDefineForClassFields: true: Use standard class field semantics
Bundler Mode
Bundler Mode
moduleResolution: "bundler": Optimized resolution for bundlers like ViteallowImportingTsExtensions: true: Allow importing.ts/.tsxfiles directlyisolatedModules: true: Ensure each file can be transpiled independentlymoduleDetection: "force": Treat all files as modulesnoEmit: true: Don’t emit output (Vite handles bundling)
JSX Configuration
JSX Configuration
jsx: "react-jsx": Use React 17+ automatic JSX runtime (no need to import React)
Strict Type Checking
Strict Type Checking
All strict options are enabled for maximum type safety:
strict: true: Enable all strict type checking optionsnoUnusedLocals: true: Error on unused local variablesnoUnusedParameters: true: Error on unused function parametersnoFallthroughCasesInSwitch: true: Error on fallthrough cases in switch statementsnoUncheckedSideEffectImports: true: Verify side-effect imports are intentional
tsconfig.node.json (Build Tools)
vite.config.ts. It uses a newer target (ES2022) since Node.js supports modern JavaScript features.
ESLint Configuration
ESLint is configured with TypeScript support and React-specific rules.eslint.config.js
ESLint Rules Breakdown
- Base Rules
- React Hooks
- React Refresh
js.configs.recommended: ESLint’s recommended JavaScript rulestseslint.configs.recommended: TypeScript-specific recommended rules
- Unreachable code
- Unused variables (caught by TypeScript too)
- Invalid regular expressions
Customizing ESLint
Add custom rules:TailwindCSS Configuration
Tailwind is configured to scan React component files for utility classes.tailwind.config.js
Configuration Options
Content Paths
Content Paths
The Tailwind will purge unused classes not found in these files during production builds.
content array tells Tailwind which files to scan for class names:Theme Extension
Theme Extension
Extend or customize the default Tailwind theme:Use in components:
Plugins
Plugins
Add official or community plugins:
Dark Mode
Dark Mode
Enable dark mode support:Use dark mode classes:
Importing Tailwind
Tailwind directives are imported insrc/index.css:
src/main.tsx:
PostCSS Configuration
PostCSS processes CSS with Tailwind and Autoprefixer.postcss.config.js
tailwindcss: Processes Tailwind directives and generates utility classesautoprefixer: Adds vendor prefixes for cross-browser compatibility
Configuration Best Practices
Type Safety
Keep strict TypeScript settings enabled. They catch bugs early and improve code quality.
Linting
Run ESLint before committing. The React Hooks rules prevent common React mistakes.
Build Optimization
Use Vite’s default optimizations. Only customize when you have specific performance needs.
Tailwind Purging
Ensure
content paths in tailwind.config.js include all files using Tailwind classes.Next Steps
Setup
Review installation and dependency requirements
Development
Learn the development workflow and build process