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 for Fast Refresh
- @vitejs/plugin-react-swc uses SWC for Fast Refresh
If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:
exportdefaulttseslint.config([globalIgnores(['dist']),{files: ['**/*.{ts,tsx}'],extends: [// Other configs...// Remove tseslint.configs.recommended and replace with this
...tseslint.configs.recommendedTypeChecked,// Alternatively, use this for stricter rules
...tseslint.configs.strictTypeChecked,// Optionally, add this for stylistic rules
...tseslint.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'exportdefaulttseslint.config([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...},},])