@@ -5,87 +5,87 @@ import type { ModuleNode, ViteDevServer } from "vite";
55import { CLIENT_BASE_PATH } from "../config/index.js" ;
66
77async function getViteModuleNode ( vite : ViteDevServer , file : string , ssr = false ) {
8- // let nodePath = file;
9- // let node = vite.moduleGraph.getModuleById(file);
10-
11- // if (!node) {
12- // const resolvedId = await vite.pluginContainer.resolveId(file, undefined, { ssr: false })
13- // if (!resolvedId) return;
14-
15- // nodePath = resolvedId.id;
16- // node = vite.moduleGraph.getModuleById(file);
17- // }
18-
19- // if (!node) {
20- // nodePath = resolve(nodePath);
21- // node = await vite.moduleGraph.getModuleByUrl(file);
22- // }
23-
24- // if (!node) {
25- // await vite.moduleGraph.ensureEntryFromUrl(nodePath, false);
26- // node = vite.moduleGraph.getModuleById(nodePath);
27- // }
28-
29-
30- // try {
31- // if (!node?.transformResult && !ssr) {
32- // await vite.transformRequest(nodePath);
33- // node = vite.moduleGraph.getModuleById(nodePath);
34- // }
35-
36- // if (ssr && !node?.ssrTransformResult) {
37- // // if (skip.includes(file)) {
38- // // return null;
39- // // }
40- // await vite.ssrLoadModule(file);
41- // node = vite.moduleGraph.getModuleById(nodePath);
42- // }
43-
44- // // vite.config.logger.error = prev;
45- // return node;
46- // } catch (e) {
47- // // vite.config.logger.error = prev;
48- // return null;
49- // }
8+ let nodePath = file ;
9+ let node = vite . moduleGraph . getModuleById ( file ) ;
10+
11+ if ( ! node ) {
12+ const resolvedId = await vite . pluginContainer . resolveId ( file , undefined , { ssr : false } )
13+ if ( ! resolvedId ) return ;
14+
15+ nodePath = resolvedId . id ;
16+ node = vite . moduleGraph . getModuleById ( file ) ;
17+ }
18+
19+ if ( ! node ) {
20+ nodePath = resolve ( nodePath ) ;
21+ node = await vite . moduleGraph . getModuleByUrl ( file ) ;
22+ }
23+
24+ if ( ! node ) {
25+ await vite . moduleGraph . ensureEntryFromUrl ( nodePath , false ) ;
26+ node = vite . moduleGraph . getModuleById ( nodePath ) ;
27+ }
28+
29+
30+ try {
31+ if ( ! node ?. transformResult && ! ssr ) {
32+ await vite . transformRequest ( nodePath ) ;
33+ node = vite . moduleGraph . getModuleById ( nodePath ) ;
34+ }
35+
36+ if ( ssr && ! node ?. ssrTransformResult ) {
37+ // if (skip.includes(file)) {
38+ // return null;
39+ // }
40+ await vite . ssrLoadModule ( file ) ;
41+ node = vite . moduleGraph . getModuleById ( nodePath ) ;
42+ }
43+
44+ // vite.config.logger.error = prev;
45+ return node ;
46+ } catch ( e ) {
47+ // vite.config.logger.error = prev;
48+ return null ;
49+ }
5050}
5151
5252async function findModuleDependencies ( vite : ViteDevServer , module : ModuleNode , ssr = false , deps : Set < ModuleNode > ) {
53- // async function add(module: ModuleNode) {
54- // if (!deps.has(module)) {
55- // deps.add(module);
56- // await findModuleDependencies(vite, module, ssr, deps);
57- // }
58- // }
59-
60- // async function addByUrl(url: string, ssr: boolean) {
61- // const node = await getViteModuleNode(vite, url, ssr);
62-
63- // if (node) await add(node);
64- // }
65-
66- // if (module.url.endsWith(".css")) return;
67-
68- // if (ssr) {
69- // if (module.ssrTransformResult?.deps) {
70- // for (const url of module.ssrTransformResult.deps) {
71- // await addByUrl(url, ssr);
72- // }
73-
74- // // Parallel version with incorrect style order
75- // /* node.ssrTransformResult.deps.forEach((url) =>
76- // branches.push(add_by_url(url, ssr)),
77- // ); */
78- // }
79- // } else {
80- // for (const { url } of module.importedModules) {
81- // const node = await getViteModuleNode(vite, url, ssr);
82-
83- // if (node && !deps.has(node)) {
84- // deps.add(node);
85- // await findModuleDependencies(vite, node, ssr, deps);
86- // }
87- // }
88- // }
53+ async function add ( module : ModuleNode ) {
54+ if ( ! deps . has ( module ) ) {
55+ deps . add ( module ) ;
56+ await findModuleDependencies ( vite , module , ssr , deps ) ;
57+ }
58+ }
59+
60+ async function addByUrl ( url : string , ssr : boolean ) {
61+ const node = await getViteModuleNode ( vite , url , ssr ) ;
62+
63+ if ( node ) await add ( node ) ;
64+ }
65+
66+ if ( module . url . endsWith ( ".css" ) ) return ;
67+
68+ if ( ssr ) {
69+ if ( module . ssrTransformResult ?. deps ) {
70+ for ( const url of module . ssrTransformResult . deps ) {
71+ await addByUrl ( url , ssr ) ;
72+ }
73+
74+ // Parallel version with incorrect style order
75+ /* node.ssrTransformResult.deps.forEach((url) =>
76+ branches.push(add_by_url(url, ssr)),
77+ ); */
78+ }
79+ } else {
80+ for ( const { url } of module . importedModules ) {
81+ const node = await getViteModuleNode ( vite , url , ssr ) ;
82+
83+ if ( node && ! deps . has ( node ) ) {
84+ deps . add ( node ) ;
85+ await findModuleDependencies ( vite , node , ssr , deps ) ;
86+ }
87+ }
88+ }
8989}
9090
9191
@@ -125,14 +125,14 @@ export const isCssUrlWithoutSideEffects = (url: string) => {
125125} ;
126126
127127async function findFilesDepedencies ( vite : ViteDevServer , files : Array < string > , ssr = false , deps = new Set < ModuleNode > ( ) ) {
128- // for (const file of files) {
129- // try {
130- // const node = await getViteModuleNode(vite, file, ssr);
131- // if (node) await findModuleDependencies(vite, node, ssr, deps);
132- // } catch (e) {
133- // console.error(e);
134- // }
135- // }
128+ for ( const file of files ) {
129+ try {
130+ const node = await getViteModuleNode ( vite , file , ssr ) ;
131+ if ( node ) await findModuleDependencies ( vite , node , ssr , deps ) ;
132+ } catch ( e ) {
133+ console . error ( e ) ;
134+ }
135+ }
136136
137137 return deps ;
138138}
@@ -141,24 +141,24 @@ const injectQuery = (url: string, query: string) =>
141141 url . includes ( "?" ) ? url . replace ( "?" , `?${ query } &` ) : `${ url } ?${ query } ` ;
142142
143143export async function findStylesInModuleGraph ( vite : ViteDevServer , id : string , ssr = false ) {
144- // const absolute = path.resolve(process.cwd(), id);
144+ const absolute = path . resolve ( process . cwd ( ) , id ) ;
145145
146- // const dependencies = await findFilesDepedencies(vite, [absolute], ssr);
146+ const dependencies = await findFilesDepedencies ( vite , [ absolute ] , ssr ) ;
147147
148148 const styles : Record < string , any > = { } ;
149149
150- // for (const dep of dependencies) {
151- // if (isCssFile(dep.url)) {
152- // let depURL = dep.url;
153- // if (!isCssUrlWithoutSideEffects(depURL)) {
154- // depURL = injectQuery(dep.url, "inline");
155- // }
150+ for ( const dep of dependencies ) {
151+ if ( isCssFile ( dep . url ) ) {
152+ let depURL = dep . url ;
153+ if ( ! isCssUrlWithoutSideEffects ( depURL ) ) {
154+ depURL = injectQuery ( dep . url , "inline" ) ;
155+ }
156156
157- // const mod = await vite.ssrLoadModule(depURL);
157+ const mod = await vite . ssrLoadModule ( depURL ) ;
158158
159- // styles[join(vite.config.root, dep.url)] = mod.default;
160- // }
161- // }
159+ styles [ join ( vite . config . root , dep . url ) ] = mod . default ;
160+ }
161+ }
162162
163163 return styles
164164}
0 commit comments