1- import type {
2- EnvironmentModuleNode ,
3- FSWatcher ,
4- PluginOption ,
5- ViteDevServer ,
6- } from "vite" ;
1+ import type { EnvironmentModuleNode , FSWatcher , PluginOption , ViteDevServer } from "vite" ;
72import { VITE_ENVIRONMENTS } from "../constants.ts" ;
83import { moduleId } from "./index.ts" ;
94import 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