const fs = require("fs"); const path = require("path"); const distPath = path.resolve(__dirname, "dist"); const manifestPath = path.join(distPath, ".vite/manifest.json"); const outputPath = path.join(distPath, "index.html"); fs.readFile(manifestPath, { encoding: "utf8" }, (err, data) => { if (err) { return console.error("Failed to read manifest:", err); } const manifest = JSON.parse(data); /** @type {{ file: string; name: string; src: string; isEntry: bool; css: string[]; } []} */ const assets = Object.values(manifest); console.log(`Generate custom index.html from ${manifestPath} ...`); // Start with a basic HTML structure let htmlContent = ` Webview UI`; // Add linked stylesheets assets.forEach((asset) => { asset.css.forEach((cssEntry) => { htmlContent += `\n `; }); }); htmlContent += `
`; // Add scripts assets.forEach((asset) => { if (asset.file.endsWith(".js")) { htmlContent += `\n `; } }); htmlContent += ` `; // Write the HTML file fs.writeFile(outputPath, htmlContent, (err) => { if (err) { console.error("Failed to write custom index.html:", err); } else { console.log("Custom index.html generated successfully!"); } }); });