From a0a8f5cb42fd6b2cc1707bef529bf42cec45f11c Mon Sep 17 00:00:00 2001 From: Faris Ansari Date: Sat, 17 Apr 2021 17:28:15 +0530 Subject: [PATCH] fix: Build for all apps --- esbuild/index.js | 64 +++++++++++++++++++++-------- frappe/public/js/controls.bundle.js | 2 - 2 files changed, 47 insertions(+), 19 deletions(-) diff --git a/esbuild/index.js b/esbuild/index.js index 419b6eb641..aacff1d6d9 100644 --- a/esbuild/index.js +++ b/esbuild/index.js @@ -1,19 +1,54 @@ +let path = require("path"); let glob = require("fast-glob"); let esbuild = require("esbuild"); let html_plugin = require("./esbuild-plugin-html"); let vue = require("esbuild-vue"); let postCssPlugin = require("esbuild-plugin-postcss2").default; let ignore_assets = require("./ignore-assets"); -let { get_options_for_scss } = require("../rollup/rollup.utils"); +let { + app_list, + get_options_for_scss, + get_public_path, + run_serially +} = require("./utils"); -console.time("Build time"); +const TOTAL_BUILD_TIME = "Total Build Time"; -glob(["frappe/public/js/**/*.bundle.js"]).then(entry_files => { - esbuild + +(async function() { + console.time(TOTAL_BUILD_TIME); + await run_build_for_apps(app_list); + console.timeEnd(TOTAL_BUILD_TIME); +})(); + +function run_build_for_apps(apps) { + return run_serially(apps.map(app => () => run_build_for_app(app))); +} + +function run_build_for_app(app) { + let public_path = get_public_path(app); + let include_patterns = path.resolve(public_path, "**", "*.bundle.js"); + let ignore_patterns = [ + path.resolve(public_path, "node_modules"), + path.resolve(public_path, "build") + ]; + + return glob(include_patterns, { ignore: ignore_patterns }).then(files => { + console.log(`\nBuilding assets for ${app}...`); + return build_files({ + files, + outdir: path.resolve(public_path, "build"), + outbase: public_path + }); + }); +} + +function build_files({ files, outdir, outbase }) { + return esbuild .build({ - entryPoints: entry_files, - outdir: "frappe/public/build", - outbase: "frappe/public", + entryPoints: files, + outdir, + outbase, sourcemap: true, bundle: true, metafile: true, @@ -45,7 +80,7 @@ glob(["frappe/public/js/**/*.bundle.js"]).then(entry_files => { } } }) - ], + ] // watch: { // onRebuild(error, result) { @@ -59,20 +94,15 @@ glob(["frappe/public/js/**/*.bundle.js"]).then(entry_files => { }) .then(result => { log_build_meta(result.metafile); - - if (result.warnings.length) { - console.warn(result.warnings); - } }) - .catch(e => console.error("error")) - .finally(() => { - console.timeEnd("Build time"); + .catch(e => { + console.error("Error during build"); }); -}); +} function log_build_meta(metafile) { for (let outfile in metafile.outputs) { - if (outfile.endsWith('.map')) continue; + if (outfile.endsWith(".map")) continue; let data = metafile.outputs[outfile]; console.log(outfile, data.bytes / 1000 + " Kb"); } diff --git a/frappe/public/js/controls.bundle.js b/frappe/public/js/controls.bundle.js index f9a983ecae..30b5d43905 100644 --- a/frappe/public/js/controls.bundle.js +++ b/frappe/public/js/controls.bundle.js @@ -16,5 +16,3 @@ import "air-datepicker/dist/js/i18n/datepicker.sk.js"; import "air-datepicker/dist/js/i18n/datepicker.zh.js"; import "./frappe/ui/capture.js"; import "./frappe/form/controls/control.js"; - -console.log('controls')