UNPKG

@wroud/vite-plugin-ssg

Version:

A Vite plugin for static site generation (SSG) with React. Renders React applications to static HTML for faster load times and improved SEO.

44 lines 1.6 kB
import { isVirtualHtmlEntry } from "../modules/isVirtualHtmlEntry.js"; export function htmlVirtualEntryResolution() { // Cast the return value to include our custom properties const plugin = { name: "@wroud/vite-plugin-ssg:html-virtual-entry-resolution", virtualHtmlChunks: undefined, enforce: "post", apply: "build", applyToEnvironment: (env) => env.name === "client", resolveId: { order: "pre", handler(source) { if (isVirtualHtmlEntry(source)) { return { id: source, moduleSideEffects: true }; } return undefined; }, }, load: { order: "pre", handler(id) { if (isVirtualHtmlEntry(id)) { return ""; } return undefined; }, }, generateBundle: { order: "post", handler(options, bundle) { // Extract virtual HTML chunks const virtualChunks = new Map(Object.entries(bundle).filter(([, chunk]) => chunk.fileName && isVirtualHtmlEntry(chunk.fileName))); // Remove virtual chunks from bundle for (const [key] of virtualChunks) { delete bundle[key]; } // Store the virtualChunks in our typed plugin object plugin.virtualHtmlChunks = virtualChunks; }, }, }; return plugin; } //# sourceMappingURL=htmlVirtualEntryResolution.js.map