fix(www): resolve SSG build issues with font preloads, dark theme and… (#7)
… RU locale - Fix depth-dependent duplicate font preload prefixes by using locale-absolute fontBase path and publicPath:false on html.tags to prevent Rsbuild from re-applying assetPrefix (path.posix.join behavior with MPA nested entries) - Fix .dark CSS rule stripped by critters: set reduceInlineStyles:false so critters only processes external stylesheets and leaves inline theme init styles (THEME_INIT_STYLES) intact - Fix NormalModuleReplacementPlugin lost in mergeConfig: refactored locale MDX replacement from tools.rspack function into a proper Rsbuild plugin so mergeConfig concatenates plugin arrays correctly (enables RU locale articles) - Extend Critters type declaration to include reduceInlineStyles option Made-with: Cursor
This commit is contained in:
1 parent
f5e901c131
commit
cd40139eea
3 files changed
+42
-23
No files matched your search
@@ -111,6 +111,7 @@ export function ssgPlugin(): RsbuildPlugin {
|
||||
preload?: string;
|
||||
inlineFonts?: boolean;
|
||||
pruneSource?: boolean;
|
||||
reduceInlineStyles?: boolean;
|
||||
}) => { process(html: string): Promise<string> };
|
||||
|
||||
// critters `path` is the filesystem root that corresponds to publicPath.
|
||||
@@ -121,9 +122,10 @@ export function ssgPlugin(): RsbuildPlugin {
|
||||
const critters = new Critters({
|
||||
path: webDistPath,
|
||||
publicPath: configuredAssetPrefix,
|
||||
preload: 'swap', // <link rel="preload" as="style" onload="this.rel='stylesheet'">
|
||||
inlineFonts: false, // fonts are handled via separate <link rel="preload"> tags
|
||||
pruneSource: false, // keep full CSS file for post-hydration correctness
|
||||
preload: 'swap', // <link rel="preload" as="style" onload="this.rel='stylesheet'">
|
||||
inlineFonts: false, // fonts are handled via separate <link rel="preload"> tags
|
||||
pruneSource: false, // keep full CSS file for post-hydration correctness
|
||||
reduceInlineStyles: false, // preserve theme init styles (prevents .dark rule from being stripped)
|
||||
});
|
||||
|
||||
for (const entryName of entryNames) {
|
||||
|
||||
Reference in new issue
Block a user