Page Menu
Home
Sealhub
Search
Configure Global Search
Log In
Files
F10361591
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
2 KB
Referenced Files
None
Subscribers
None
View Options
diff --git a/esbuild.js b/esbuild.js
index 2f0c7dc..99f1a17 100644
--- a/esbuild.js
+++ b/esbuild.js
@@ -1,59 +1,75 @@
const { build } = require("esbuild");
const { spawn } = require("child_process");
const { sassPlugin } = require("esbuild-sass-plugin");
const glob = require("tiny-glob");
const chokidar = require("chokidar");
const watch = process.argv.includes("--watch");
+async function build_scss(watch) {
+ let scss_build;
+ if (watch) {
+ const scss_watcher = chokidar.watch("src", { ignoreInitial: true });
+ scss_watcher.on("all", (_, path) => {
+ if (!scss_build) return;
+ if (path.endsWith(".scss") && !path.endsWith("/includes.scss")) {
+ // refresh the list of all scss files in includes.scss
+ spawn("./node_modules/.bin/sealgen", ["generate-scss-includes"]).on(
+ "close",
+ () => {
+ try {
+ scss_build.rebuild();
+ console.log(`Built main.scss [on ${path}]`);
+ } catch (e) {
+ console.error(e);
+ setTimeout(() => {
+ scss_build
+ .rebuild()
+ .catch((e) => conslole.error(e.message));
+ }, 200);
+ }
+ }
+ );
+ }
+ });
+ }
+
+ scss_build = await build({
+ entryPoints: ["./src/main.scss"],
+ sourcemap: true,
+ outfile: "./public/dist/style.css",
+ logLevel: "info",
+ incremental: watch,
+ plugins: [sassPlugin()],
+ });
+ scss_build.rebuild();
+}
+
(async () => {
const entryPoints = await glob("./src/back/**/*.ts");
build({
entryPoints,
sourcemap: true,
outdir: "./dist/back",
logLevel: "info",
platform: "node",
watch,
target: "node16",
format: "cjs",
});
- const scss_build = await build({
- entryPoints: ["./src/main.scss"],
- sourcemap: true,
- outfile: "./public/dist/style.css",
- logLevel: "info",
- incremental: watch,
- plugins: [sassPlugin()],
- });
- scss_build.rebuild();
build({
entryPoints: ["./src/front/index.ts"],
sourcemap: true,
outfile: "./public/dist/bundle.js",
logLevel: "info",
bundle: true,
watch,
});
- if (watch) {
- const scss_watcher = chokidar.watch("src", { ignoreInitial: true });
- scss_watcher.on("all", (_, path) => {
- if (path.endsWith(".scss")) {
- // refresh the list of all scss files in includes.scss
- spawn("./node_modules/.bin/sealgen", ["generate-scss-includes"]).on(
- "close",
- () => {
- scss_build.rebuild().catch(async (e) => {
- console.error(e);
- setTimeout(() => {
- scss_build.rebuild();
- }, 200);
- });
- }
- );
- }
- });
+ try {
+ await build_scss(watch);
+ } catch (e) {
+ console.error(e.message);
}
})();
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Sat, Nov 8, 14:52 (7 h, 33 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1034677
Default Alt Text
(2 KB)
Attached To
Mode
rPIWO PIWO 2025
Attached
Detach File
Event Timeline
Log In to Comment