From 4a82da2919e0564ec993b2005dc65b5b49407b36 Mon Sep 17 00:00:00 2001 From: Amr Bashir Date: Thu, 16 Feb 2023 19:59:56 +0200 Subject: [PATCH] fix(cli): use local ip address for reload (#6285) Co-authored-by: Lucas Nogueira --- .changes/local-dev-path-mobile.md | 6 ++++++ tooling/cli/src/helpers/auto-reload.js | 2 +- tooling/cli/src/helpers/web_dev_server.rs | 19 ++++++++++++++----- 3 files changed, 21 insertions(+), 6 deletions(-) create mode 100644 .changes/local-dev-path-mobile.md diff --git a/.changes/local-dev-path-mobile.md b/.changes/local-dev-path-mobile.md new file mode 100644 index 000000000..a4b21ca60 --- /dev/null +++ b/.changes/local-dev-path-mobile.md @@ -0,0 +1,6 @@ +--- +"cli.rs": patch +"cli.js": patch +--- + +Fixes HMR on mobile when devPath is configured to load a filesystem path. diff --git a/tooling/cli/src/helpers/auto-reload.js b/tooling/cli/src/helpers/auto-reload.js index 61c71bce7..3351607a3 100644 --- a/tooling/cli/src/helpers/auto-reload.js +++ b/tooling/cli/src/helpers/auto-reload.js @@ -1,7 +1,7 @@ // taken from https://github.com/thedodd/trunk/blob/5c799dc35f1f1d8f8d3d30c8723cbb761a9b6a08/src/autoreload.js ;(function () { - var url = 'ws:' + '//' + window.location.host + '/_tauri-cli/ws' + var url = '{{reload_url}}' var poll_interval = 5000 var reload_upon_connect = () => { window.setTimeout(() => { diff --git a/tooling/cli/src/helpers/web_dev_server.rs b/tooling/cli/src/helpers/web_dev_server.rs index 0e41cccd1..cef1a2a2f 100644 --- a/tooling/cli/src/helpers/web_dev_server.rs +++ b/tooling/cli/src/helpers/web_dev_server.rs @@ -23,6 +23,7 @@ const AUTO_RELOAD_SCRIPT: &str = include_str!("./auto-reload.js"); struct State { serve_dir: PathBuf, + address: SocketAddr, tx: Sender<()>, } @@ -60,8 +61,12 @@ pub fn start_dev_server>(address: SocketAddr, path: P) { } }); - let state = Arc::new(State { serve_dir, tx }); - let router = Router::new() + let state = Arc::new(State { + serve_dir, + tx, + address, + }); + let server_router = Router::new() .fallback( Router::new().nest( "/", @@ -73,13 +78,14 @@ pub fn start_dev_server>(address: SocketAddr, path: P) { ), ) .route( - "/_tauri-cli/ws", + "/__tauri_cli", get(move |ws: WebSocketUpgrade| async move { ws.on_upgrade(|socket| async move { ws_handler(socket, state).await }) }), ); + Server::bind(&address) - .serve(router.into_make_service()) + .serve(server_router.into_make_service()) .await .unwrap(); }) @@ -120,7 +126,10 @@ async fn handler(req: Request, state: Arc) -> impl IntoResponse { with_html_head(&mut document, |head| { let script_el = NodeRef::new_element(QualName::new(None, ns!(html), "script".into()), None); - script_el.append(NodeRef::new_text(AUTO_RELOAD_SCRIPT)); + script_el.append(NodeRef::new_text(AUTO_RELOAD_SCRIPT.replace( + "{{reload_url}}", + &format!("ws://{}/__tauri_cli", state.address), + ))); head.prepend(script_el); });