diff --git a/README.md b/README.md index 74872fd..f768e33 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# React + TypeScript + Vite +# React + Vite This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. @@ -6,45 +6,3 @@ Currently, two official plugins are available: - [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh - [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh - -## Expanding the ESLint configuration - -If you are developing a production application, we recommend updating the configuration to enable type aware lint rules: - -- Configure the top-level `parserOptions` property like this: - -```js -export default tseslint.config({ - languageOptions: { - // other options... - parserOptions: { - project: ['./tsconfig.node.json', './tsconfig.app.json'], - tsconfigRootDir: import.meta.dirname, - }, - }, -}) -``` - -- Replace `tseslint.configs.recommended` to `tseslint.configs.recommendedTypeChecked` or `tseslint.configs.strictTypeChecked` -- Optionally add `...tseslint.configs.stylisticTypeChecked` -- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and update the config: - -```js -// eslint.config.js -import react from 'eslint-plugin-react' - -export default tseslint.config({ - // Set the react version - settings: { react: { version: '18.3' } }, - plugins: { - // Add the react plugin - react, - }, - rules: { - // other rules... - // Enable its recommended rules - ...react.configs.recommended.rules, - ...react.configs['jsx-runtime'].rules, - }, -}) -``` diff --git a/eslint.config.js b/eslint.config.js index 092408a..238d2e4 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -1,28 +1,38 @@ import js from '@eslint/js' import globals from 'globals' +import react from 'eslint-plugin-react' import reactHooks from 'eslint-plugin-react-hooks' import reactRefresh from 'eslint-plugin-react-refresh' -import tseslint from 'typescript-eslint' -export default tseslint.config( +export default [ { ignores: ['dist'] }, { - extends: [js.configs.recommended, ...tseslint.configs.recommended], - files: ['**/*.{ts,tsx}'], + files: ['**/*.{js,jsx}'], languageOptions: { ecmaVersion: 2020, globals: globals.browser, + parserOptions: { + ecmaVersion: 'latest', + ecmaFeatures: { jsx: true }, + sourceType: 'module', + }, }, + settings: { react: { version: '18.3' } }, plugins: { + react, 'react-hooks': reactHooks, 'react-refresh': reactRefresh, }, rules: { + ...js.configs.recommended.rules, + ...react.configs.recommended.rules, + ...react.configs['jsx-runtime'].rules, ...reactHooks.configs.recommended.rules, + 'react/jsx-no-target-blank': 'off', 'react-refresh/only-export-components': [ 'warn', { allowConstantExport: true }, ], }, }, -) +] diff --git a/index.html b/index.html index e4b78ea..9c1bbf8 100644 --- a/index.html +++ b/index.html @@ -4,10 +4,10 @@ -