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...},},]);