diff --git a/esbuild/esbuild.js b/esbuild/esbuild.js index 9074beae06..b0ed92f9ec 100644 --- a/esbuild/esbuild.js +++ b/esbuild/esbuild.js @@ -44,6 +44,11 @@ let argv = yargs type: "boolean", description: "Run in watch mode and rebuild on file changes" }) + .option("auto-reload", { + type: "boolean", + description: `Automatically reload webpages when assets are rebuilt. + Can only be used with the --watch flag.` + }) .option("production", { type: "boolean", description: "Run build in production mode" @@ -475,7 +480,8 @@ async function notify_redis({ error, success }) { } if (success) { payload = { - success: true + success: true, + autoreload: argv["auto-reload"] }; } @@ -528,4 +534,4 @@ function log_rebuilt_assets(prev_assets, new_assets) { log(" " + filename); } log(); -} \ No newline at end of file +} diff --git a/frappe/build.py b/frappe/build.py index dfbe20f31e..ec092d4b57 100644 --- a/frappe/build.py +++ b/frappe/build.py @@ -235,6 +235,9 @@ def watch(apps=None): if apps: command += " --apps {apps}".format(apps=apps) + if frappe.conf.autoreload_on_build: + command += " --auto-reload" + check_node_executable() frappe_app_path = frappe.get_app_path("frappe", "..") frappe.commands.popen(command, cwd=frappe_app_path, env=get_node_env()) diff --git a/frappe/public/js/frappe/build_events/BuildSuccess.vue b/frappe/public/js/frappe/build_events/BuildSuccess.vue index 75a365fdc2..d489c4a1a3 100644 --- a/frappe/public/js/frappe/build_events/BuildSuccess.vue +++ b/frappe/public/js/frappe/build_events/BuildSuccess.vue @@ -3,8 +3,11 @@ v-if="is_shown" class="flex justify-between build-success-message align-center" > -