console.time("Build time"); import esbuild from "esbuild"; import htmlMinifier from "html-minifier-terser"; import fsSync from "fs"; export default async ()=> { const fs = fsSync.promises; const isProduction = true; const esbuildProm = esbuild.build({ entryPoints: [`${import.meta.dirname}/index.js`, `${import.meta.dirname}/index.css`], bundle: true, minify: isProduction, write: false, outdir: import.meta.dirname }); const htmlProm = fs.readFile(`${import.meta.dirname}/index.html`, "utf-8"); const [build, html] = await Promise.all([esbuildProm, htmlProm]); let js, css; for(let i = 0; i < build.outputFiles.length; i++){ if(build.outputFiles[i].path.endsWith(".js")){ js = build.outputFiles[i].text; }else if(build.outputFiles[i].path.endsWith(".css")){ css = build.outputFiles[i].text; } } let data = await htmlMinifier.minify(html, { collapseBooleanAttributes: true, collapseInlineTagWhitespace: true, collapseWhitespace: true, conservativeCollapse: true, decodeEntities: true, noNewlinesBeforeTagClose: true, removeComments: true }); data = data.replace("", ``) data = data.replace("", ``) console.timeEnd("Build time"); return data; }