File tree Expand file tree Collapse file tree 1 file changed +33
-0
lines changed Expand file tree Collapse file tree 1 file changed +33
-0
lines changed Original file line number Diff line number Diff line change @@ -1976,6 +1976,39 @@ function vitePluginRscCss(
1976
1976
}
1977
1977
} ,
1978
1978
} ,
1979
+ {
1980
+ // self accept css module used in server component to avoid full reload
1981
+ // https://github.com/vitejs/vite/blob/84079a84ad94de4c1ef4f1bdb2ab448ff2c01196/packages/vite/src/node/plugins/css.ts#L1096
1982
+ name : 'rsc:rsc-css-self-accept' ,
1983
+ apply : 'serve' ,
1984
+ transform : {
1985
+ order : 'post' ,
1986
+ handler ( _code , id , _options ) {
1987
+ if (
1988
+ this . environment . name === 'client' &&
1989
+ this . environment . mode === 'dev' &&
1990
+ isCSSRequest ( id )
1991
+ ) {
1992
+ const mod = this . environment . moduleGraph . getModuleById ( id )
1993
+ const { filename, query } = parseIdQuery ( id )
1994
+ if ( mod && ! mod . isSelfAccepting && 'direct' in query ) {
1995
+ const serverMods =
1996
+ manager . server . environments . rsc ! . moduleGraph . getModulesByFile (
1997
+ filename ,
1998
+ )
1999
+ // filter out module nodes created by tailwind dependenncy.
2000
+ // for Vite 7.1, we can use `m.type !== "asset"`.
2001
+ const isServerCss = [ ...( serverMods ?? [ ] ) ] . some ( ( m ) =>
2002
+ [ ...m . importers ] . some ( ( m ) => m . id && ! isCSSRequest ( m . id ) ) ,
2003
+ )
2004
+ if ( isServerCss ) {
2005
+ mod . isSelfAccepting = true
2006
+ }
2007
+ }
2008
+ }
2009
+ } ,
2010
+ } ,
2011
+ } ,
1979
2012
{
1980
2013
name : 'rsc:css-virtual' ,
1981
2014
resolveId ( source ) {
You can’t perform that action at this time.
0 commit comments