|
|
@@ -4,43 +4,38 @@ import fsSync from "fs";
|
|
|
|
|
|
const fs = fsSync.promises;
|
|
|
|
|
|
-export default async ()=>{
|
|
|
- const esbuildProm = esbuild.build({
|
|
|
- entryPoints: [`${global.cwd}/views/index.js`, `${global.cwd}/views/index.css`],
|
|
|
- bundle: true,
|
|
|
- minify: true,
|
|
|
- sourcemap: process.env.NODE_ENV === "production",
|
|
|
- write: false,
|
|
|
- outdir: `${global.cwd}/views/build/`
|
|
|
- });
|
|
|
- const htmlProm = fs.readFile(`${import.meta.dirname}/views/index.html`, "utf-8");
|
|
|
- const [build, html] = await Promise.all([esbuildProm, htmlProm]);
|
|
|
+const esbuildProm = esbuild.build({
|
|
|
+ entryPoints: [`./index.js`, `./index.css`],
|
|
|
+ bundle: true,
|
|
|
+ minify: true,
|
|
|
+ sourcemap: false,
|
|
|
+ write: false,
|
|
|
+ outdir: `.`
|
|
|
+});
|
|
|
+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 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('<script src="/index.js"></script>', `<script>${js}</script>`);
|
|
|
- data = data.replace('<link rel="stylesheet" href="/index.css">', `<style>${css}</style>`);
|
|
|
+let data = await htmlMinifier.minify(html, {
|
|
|
+ collapseBooleanAttributes: true,
|
|
|
+ collapseInlineTagWhitespace: true,
|
|
|
+ collapseWhitespace: true,
|
|
|
+ conservativeCollapse: true,
|
|
|
+ decodeEntities: true,
|
|
|
+ noNewlinesBeforeTagClose: true,
|
|
|
+ removeComments: true
|
|
|
+});
|
|
|
+console.log(data);
|
|
|
|
|
|
- if(process.env.NODE_ENV !== "production"){
|
|
|
- fs.writeFile(`${import.meta.dirname}/build.html`, data);
|
|
|
- }
|
|
|
+data = data.replace('<script></script>', `<script>${js}</script>`);
|
|
|
+data = data.replace('<link rel="stylesheet">', `<style>${css}</style>`);
|
|
|
|
|
|
- return data;
|
|
|
-}
|
|
|
+fs.writeFile(`${import.meta.dirname}/build.html`, data);
|