gotify / server

A simple server for sending and receiving messages in real-time per WebSocket. (Includes a sleek web-ui)
https://gotify.net
Other
11.49k stars 639 forks source link

Migrate react-scripts to vite #695

Open mfechner opened 1 month ago

mfechner commented 1 month ago

Is your feature request related to a problem? Please describe. The current build tools of the UI are very outdated and are making problem with newer versions of nodejs. Related issue: https://github.com/gotify/server/issues/574

Describe the solution you'd like I work on a patch to migrate from react-scripts to vite which includes other required changes (I had also to update state management lib mobx).

Describe alternatives you've considered Update react-scripts is not really an option, as vite is the currently mostly used platform to build and develop with react and also with other frameworks. This would only move the migration to vite to a later date.

Additional context This request was initiated by a discussion here: https://github.com/gotify/server/issues/199#issuecomment-2408896034

The current version can be found here, it is WIP: https://github.com/mfechner/gotify-server/tree/react_scripts_to_vite

If I see a bug free version, I will submit a PR it.

I see there some last problems, but I have difficulties to spot the location in code, maybe someone has an idea.

~~For the asset-manifest.json, you can just touch the file to get the gotify go binary up and running: touch ui/build/asset-manifest.json~~

Error message in browser console for the UI state management:

[MobX] Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: AppStore@2.items [<anonymous code>:1:145535](chrome://devtools/content/webconsole/%3Canonymous%20code%3E)
[MobX] Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: ObservableArray@17 [<anonymous code>:1:145535](chrome://devtools/content/webconsole/%3Canonymous%20code%3E)
[MobX] Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: MessagesStore@4.state.-1.hasMore [<anonymous code>:1:145535](chrome://devtools/content/webconsole/%3Canonymous%20code%3E)
[MobX] Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: MessagesStore@4.state.-1.loaded