Skip to content

Commit 57761de

Browse files
committed
fix css hot reload in route/layout files
1 parent 9d5d783 commit 57761de

1 file changed

Lines changed: 14 additions & 10 deletions

File tree

packages/start/src/config/fs-routes/fs-watcher.ts

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,4 @@
1-
import type {
2-
EnvironmentModuleNode,
3-
FSWatcher,
4-
PluginOption,
5-
ViteDevServer,
6-
} from "vite";
1+
import type { EnvironmentModuleNode, FSWatcher, PluginOption, ViteDevServer } from "vite";
72
import { VITE_ENVIRONMENTS } from "../constants.ts";
83
import { moduleId } from "./index.ts";
94
import type { BaseFileSystemRouter } from "./router.ts";
@@ -31,13 +26,11 @@ function createRoutesReloader(
3126
return () => routes.removeEventListener("reload", handleRoutesReload);
3227

3328
function handleRoutesReload(): void {
34-
const envName =
35-
environment === "ssr" ? VITE_ENVIRONMENTS.server : VITE_ENVIRONMENTS.client;
29+
const envName = environment === "ssr" ? VITE_ENVIRONMENTS.server : VITE_ENVIRONMENTS.client;
3630
const devEnv = server.environments[envName];
3731
if (!devEnv?.moduleGraph) return;
3832

39-
const mod: EnvironmentModuleNode | undefined =
40-
devEnv.moduleGraph.getModuleById(moduleId);
33+
const mod: EnvironmentModuleNode | undefined = devEnv.moduleGraph.getModuleById(moduleId);
4134
if (mod) {
4235
const seen = new Set<EnvironmentModuleNode>();
4336
devEnv.moduleGraph.invalidateModule(mod, seen);
@@ -46,6 +39,17 @@ function createRoutesReloader(
4639
if (environment !== "ssr") {
4740
if (mod) {
4841
devEnv.reloadModule(mod);
42+
43+
const extensions = [".css", ".scss", ".sass.", ".less"];
44+
for (const [file, mods] of devEnv.moduleGraph.fileToModulesMap) {
45+
if (extensions.some(ext => file.endsWith(ext))) {
46+
for (const cssModule of mods) {
47+
if (cssModule) {
48+
devEnv.moduleGraph.invalidateModule(cssModule);
49+
}
50+
}
51+
}
52+
}
4953
} else if (devEnv.hot) {
5054
devEnv.hot.send({ type: "full-reload" });
5155
}

0 commit comments

Comments
 (0)