ente/web/packages/build-config/eslintrc-react.js
Manav Rathi 64231c73f1
[web] Add ESLint to enforce HMR how vite likes it
Configuration changes taken from the vite starter (react-ts).

From the vite docs (https://github.com/vitejs/vite-plugin-react-swc?tab=readme-ov-file#consistent-components-exports)

> For React refresh to work correctly, your file should only export React components.
>
> If an incompatible change in exports is found, the module will be invalidated.
> To make it easier to export simple constants alongside your component the module
> is only invalidated when their value changes.

While we're not currently using vite for our main apps, it would be worthwhile
to write code in a way that a future migration to it is painless if needed.

About the what and the why, the Gatsby docs are illuminating:
https://www.gatsbyjs.com/docs/reference/local-development/fast-refresh/#how-it-works

Some other refs:
- https://github.com/ArnaudBarre/eslint-plugin-react-refresh
- https://github.com/vitejs/vite/discussions/4577#discussioncomment-1161007
- https://github.com/vitejs/vite-plugin-react/issues/34
2024-04-13 18:38:24 +05:30

17 lines
396 B
JavaScript

/* eslint-env node */
module.exports = {
extends: [
"./eslintrc-base.js",
"plugin:react/recommended",
"plugin:react-hooks/recommended",
],
plugins: ["react-refresh"],
settings: { react: { version: "18.2" } },
rules: {
"react-refresh/only-export-components": [
"warn",
{ allowConstantExport: true },
],
},
};