ente/web/packages/build-config
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
..
.eslintrc.js Move into web/ 2024-03-01 12:21:07 +05:30
eslintrc-base.js Tinker 2024-04-03 13:32:05 +05:30
eslintrc-next.js Restructure eslint config 2024-04-02 20:44:57 +05:30
eslintrc-react.js [web] Add ESLint to enforce HMR how vite likes it 2024-04-13 18:38:24 +05:30
eslintrc-vite.js Enable the jsx-runtime plugin for vite's ESLint 2024-04-04 14:46:41 +05:30
package.json [web] Add ESLint to enforce HMR how vite likes it 2024-04-13 18:38:24 +05:30
README.md prettier markdown 2024-04-03 13:39:44 +05:30
tsconfig-typecheck.json Convert payments app to use Vite - Part 1 2024-04-04 11:10:34 +05:30
tsconfig-vite.json Remove unused 404 handler 2024-04-04 13:58:30 +05:30
tsconfig-vite.node.json Convert payments app to use Vite - Part 1 2024-04-04 11:10:34 +05:30
tsconfig.json Fix the yarn lint 2024-04-05 21:22:44 +05:30

@/build-config

Build time configuration files. This can be thought of as a devDependency that exports various config files that our packages use at build time.

Packaging

This is not a TypeScript package, nor is it linted. It is not meant to be transpiled, it just exports static files that can be included verbatim.

Debugging

Too see what tsc is seeing (say when it is trying to type-check @/utils), use yarn workspace @/utils tsc --showConfig.

Similarly, to verify what ESLint is trying to do, use yarn workspace @/utils eslint --debug .

If the issue is in VSCode, open the output window of the corresponding plugin, it might be telling us what's going wrong there. In particular, when changing the settings here, you might need to "Developer: Reload Window" in VSCode to get it to pick up the changes.