fix build site
This commit is contained in:
parent
f0748f4954
commit
fc3d972535
|
|
@ -65,7 +65,7 @@ export const Live: FC<{
|
||||||
routeLive(p, pathname);
|
routeLive(p, pathname);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!p.mode) return <Loading note="init mode" />;
|
if (!p.mode) return <Loading />;
|
||||||
else {
|
else {
|
||||||
w.isMobile = p.mode === "mobile";
|
w.isMobile = p.mode === "mobile";
|
||||||
w.isDesktop = p.mode === "desktop";
|
w.isDesktop = p.mode === "desktop";
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@
|
||||||
"dev": "bun run --hot --silent ./pkgs/core/index.ts dev",
|
"dev": "bun run --hot --silent ./pkgs/core/index.ts dev",
|
||||||
"clean": "rm -rf data && rm -rf app/static && rm -rf app/web/.parcel-cache",
|
"clean": "rm -rf data && rm -rf app/static && rm -rf app/web/.parcel-cache",
|
||||||
"build": "bun run --silent ./pkgs/core/build.ts",
|
"build": "bun run --silent ./pkgs/core/build.ts",
|
||||||
|
"build-site": "bun run --silent ./pkgs/core/build-site.ts",
|
||||||
"db-pull": "bun run ./pkgs/core/db-pull.ts",
|
"db-pull": "bun run ./pkgs/core/db-pull.ts",
|
||||||
"parcel": "bun clean && bun run ./pkgs/core/parcel.ts",
|
"parcel": "bun clean && bun run ./pkgs/core/parcel.ts",
|
||||||
"prod": "bun run --silent ./pkgs/core/index.ts",
|
"prod": "bun run --silent ./pkgs/core/index.ts",
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,53 @@
|
||||||
|
import { dir } from "dir";
|
||||||
|
import { Plugin, context } from "esbuild";
|
||||||
|
import { $ } from "execa";
|
||||||
|
import { removeAsync, writeAsync } from "fs-jetpack";
|
||||||
|
|
||||||
|
await removeAsync(dir.path("app/srv/site"));
|
||||||
|
const onEndPlugin: Plugin = {
|
||||||
|
name: "on-end",
|
||||||
|
setup(build) {
|
||||||
|
build.onEnd(async (result) => {
|
||||||
|
console.log("Compressing deploy");
|
||||||
|
await removeAsync(dir.path("app/srv/site.zip"));
|
||||||
|
await $({ cwd: dir.path("app/srv") })`zip -r site.zip site`;
|
||||||
|
process.exit(0);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
console.log("Building deploy");
|
||||||
|
const ctx = await context({
|
||||||
|
bundle: true,
|
||||||
|
absWorkingDir: dir.path(""),
|
||||||
|
entryPoints: [dir.path("app/web/src/render/site/site.tsx")],
|
||||||
|
outdir: dir.path("app/srv/site"),
|
||||||
|
splitting: true,
|
||||||
|
format: "esm",
|
||||||
|
jsx: "transform",
|
||||||
|
minify: true,
|
||||||
|
sourcemap: true,
|
||||||
|
logLevel: "error",
|
||||||
|
plugins: [onEndPlugin],
|
||||||
|
define: {
|
||||||
|
"process.env.NODE_ENV": `"production"`,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
await ctx.rebuild();
|
||||||
|
await writeAsync(
|
||||||
|
dir.path("app/srv/site/index.html"),
|
||||||
|
`
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title></title>
|
||||||
|
<link rel="stylesheet" href="https://prasi.app/index.css">
|
||||||
|
</head>
|
||||||
|
<body class="flex-col flex-1 w-full min-h-screen flex opacity-0">
|
||||||
|
<div id="root"></div>
|
||||||
|
<script src="/site.js" type="module"></script>
|
||||||
|
</body>
|
||||||
|
</html>`
|
||||||
|
);
|
||||||
|
|
@ -1,17 +1,14 @@
|
||||||
import brotliPromise from "brotli-wasm";
|
import brotliPromise from "brotli-wasm";
|
||||||
import { spawn } from "bun";
|
import { spawn } from "bun";
|
||||||
import { dir } from "dir";
|
import { dir } from "dir";
|
||||||
import { Plugin, context } from "esbuild";
|
|
||||||
import { $ } from "execa";
|
|
||||||
import { fdir } from "fdir";
|
import { fdir } from "fdir";
|
||||||
import { statSync } from "fs";
|
import { statSync } from "fs";
|
||||||
import {
|
import {
|
||||||
|
copyAsync,
|
||||||
|
existsAsync,
|
||||||
listAsync,
|
listAsync,
|
||||||
removeAsync,
|
removeAsync,
|
||||||
writeAsync,
|
writeAsync,
|
||||||
inspectTree,
|
|
||||||
existsAsync,
|
|
||||||
copyAsync,
|
|
||||||
} from "fs-jetpack";
|
} from "fs-jetpack";
|
||||||
const brotli = await brotliPromise;
|
const brotli = await brotliPromise;
|
||||||
|
|
||||||
|
|
@ -101,54 +98,4 @@ if (files) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const buildSite = async () => {
|
await import("./build-site");
|
||||||
await removeAsync(dir.path("app/srv/site"));
|
|
||||||
const onEndPlugin: Plugin = {
|
|
||||||
name: "on-end",
|
|
||||||
setup(build) {
|
|
||||||
build.onEnd(async (result) => {
|
|
||||||
console.log("Compressing deploy");
|
|
||||||
await removeAsync(dir.path("app/srv/site.zip"));
|
|
||||||
await $({ cwd: dir.path("app/srv") })`zip -r site.zip site`;
|
|
||||||
process.exit(0);
|
|
||||||
});
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
console.log("Building deploy");
|
|
||||||
const ctx = await context({
|
|
||||||
bundle: true,
|
|
||||||
absWorkingDir: dir.path(""),
|
|
||||||
entryPoints: [dir.path("app/web/src/render/site/site.tsx")],
|
|
||||||
outdir: dir.path("app/srv/site"),
|
|
||||||
splitting: true,
|
|
||||||
format: "esm",
|
|
||||||
jsx: "transform",
|
|
||||||
minify: true,
|
|
||||||
sourcemap: true,
|
|
||||||
logLevel: "error",
|
|
||||||
plugins: [onEndPlugin],
|
|
||||||
define: {
|
|
||||||
"process.env.NODE_ENV": `"production"`,
|
|
||||||
},
|
|
||||||
});
|
|
||||||
await ctx.rebuild();
|
|
||||||
await writeAsync(
|
|
||||||
dir.path("app/srv/site/index.html"),
|
|
||||||
`
|
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<title></title>
|
|
||||||
<link rel="stylesheet" href="https://prasi.app/index.css">
|
|
||||||
</head>
|
|
||||||
<body class="flex-col flex-1 w-full min-h-screen flex opacity-0">
|
|
||||||
<div id="root"></div>
|
|
||||||
<script src="/site.js" type="module"></script>
|
|
||||||
</body>
|
|
||||||
</html>`
|
|
||||||
);
|
|
||||||
};
|
|
||||||
await buildSite();
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue