From 17b73af614342dbe61c30e6a9eee6532bc89c74a Mon Sep 17 00:00:00 2001
From: Dominik George <dominik.george@teckids.org>
Date: Sun, 18 Dec 2022 11:49:08 +0100
Subject: [PATCH] Run Vite dev server together with DEBUG runuwsgi

---
 .../core/management/commands/{vite_bundle.py => vite.py} | 9 +++++++--
 aleksis/core/settings.py                                 | 1 +
 2 files changed, 8 insertions(+), 2 deletions(-)
 rename aleksis/core/management/commands/{vite_bundle.py => vite.py} (63%)

diff --git a/aleksis/core/management/commands/vite_bundle.py b/aleksis/core/management/commands/vite.py
similarity index 63%
rename from aleksis/core/management/commands/vite_bundle.py
rename to aleksis/core/management/commands/vite.py
index 01ab9654b..6a51217ff 100644
--- a/aleksis/core/management/commands/vite_bundle.py
+++ b/aleksis/core/management/commands/vite.py
@@ -11,6 +11,10 @@ from ...util.frontend_helpers import run_vite, write_vite_values
 class Command(BaseYarnCommand):
     help = "Create Vite bundles for AlekSIS"  # noqa
 
+    def add_arguments(self, parser):
+        parser.add_argument("command", choices=["build", "serve"], default="build")
+        parser.add_argument("--no-install", action="store_true", default=False)
+
     def handle(self, *args, **options):
         super(Command, self).handle(*args, **options)
 
@@ -18,7 +22,8 @@ class Command(BaseYarnCommand):
         write_vite_values(os.path.join(settings.NODE_MODULES_ROOT, "django-vite-values.json"))
 
         # Install Node dependencies
-        yarn_adapter.install(settings.YARN_INSTALLED_APPS)
+        if not options["no_install"]:
+            yarn_adapter.install(settings.YARN_INSTALLED_APPS)
 
         # Run Vite build
-        run_vite(["build"])
+        run_vite([options["command"]])
diff --git a/aleksis/core/settings.py b/aleksis/core/settings.py
index 78bd718a0..033f8824c 100644
--- a/aleksis/core/settings.py
+++ b/aleksis/core/settings.py
@@ -744,6 +744,7 @@ if _settings.get("dev.uwsgi.celery", DEBUG):
     UWSGI.setdefault("attach-daemon", [])
     UWSGI["attach-daemon"].append(f"celery -A aleksis.core worker --concurrency={concurrency}")
     UWSGI["attach-daemon"].append("celery -A aleksis.core beat")
+    UWSGI["attach-daemon"].append("aleksis-admin vite --no-install serve")
 
 DEFAULT_FAVICON_PATHS = {
     "pwa_icon": os.path.join(STATIC_ROOT, "img/aleksis-icon-maskable.png"),
-- 
GitLab