This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
Currently, two official plugins are available:
- @vitejs/plugin-react uses Babel (or oxc when used in rolldown-vite) for Fast Refresh
- @vitejs/plugin-react-swc uses SWC for Fast Refresh
The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see this documentation.
If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:
exportdefaultdefineConfig([globalIgnores(['dist']),{files: ['**/*.{ts,tsx}'],extends: [// Other configs...// Remove tseslint.configs.recommended and replace with thistseslint.configs.recommendedTypeChecked,// Alternatively, use this for stricter rulestseslint.configs.strictTypeChecked,// Optionally, add this for stylistic rulestseslint.configs.stylisticTypeChecked,// Other configs...],languageOptions: {parserOptions: {project: ['./tsconfig.node.json','./tsconfig.app.json'],tsconfigRootDir: import.meta.dirname,},// other options...},},])You can also install eslint-plugin-react-x and eslint-plugin-react-dom for React-specific lint rules:
// eslint.config.jsimportreactXfrom'eslint-plugin-react-x'importreactDomfrom'eslint-plugin-react-dom'exportdefaultdefineConfig([globalIgnores(['dist']),{files: ['**/*.{ts,tsx}'],extends: [// Other configs...// Enable lint rules for ReactreactX.configs['recommended-typescript'],// Enable lint rules for React DOMreactDom.configs.recommended,],languageOptions: {parserOptions: {project: ['./tsconfig.node.json','./tsconfig.app.json'],tsconfigRootDir: import.meta.dirname,},// other options...},},])