diff --git a/config/vite.json b/config/vite.json
index 14b5da38ab26121453a23e85df6f7297de0fb8c3..178f978687fbdd9ea8b3143b4d8c54e93354992d 100644
--- a/config/vite.json
+++ b/config/vite.json
@@ -1,6 +1,13 @@
 {
   "all": {
     "sourceCodeDir": "app/assets",
+    "watchAdditionalPaths": [
+      "app/graphql/queries",
+      "app/assets",
+      "ee/app/assets",
+      "jh/app/assets",
+      "vendor/assets"
+    ],
     "entrypointsDir": "javascripts/entrypoints",
     "port": 3038,
     "publicOutputDir": "vite-dev",
diff --git a/vite.config.js b/vite.config.js
index 88d264531a6386a6635d97f3f66ed13c02326a5f..b70478abe96779de5234c233f171f8f0db9748cc 100644
--- a/vite.config.js
+++ b/vite.config.js
@@ -128,5 +128,21 @@ export default defineConfig({
       protocol: 'ws',
     },
     https: false,
+    watch: {
+      ignored: [
+        '**/*.stories.js',
+        function ignoreRootFolder(x) {
+          /*
+           `vite` watches the root folder of gitlab and all of its sub folders
+           This is not what we want, because we have temp files, and all kind
+           of other stuff. As vite starts its watchers recursively, we just
+           ignore if the path matches exactly the root folder
+
+           Additional folders like `ee/app/assets` are defined in
+           */
+          return x === __dirname;
+        },
+      ],
+    },
   },
 });