diff --git a/.changes/cli-built-in-dev-server-mobile.md b/.changes/cli-built-in-dev-server-mobile.md new file mode 100644 index 000000000..7077e95b2 --- /dev/null +++ b/.changes/cli-built-in-dev-server-mobile.md @@ -0,0 +1,6 @@ +--- +'cli.rs': 'patch' +'cli.js': 'patch' +--- + +Use local ip address for built-in dev server on mobile. diff --git a/tooling/cli/src/dev.rs b/tooling/cli/src/dev.rs index 9a61e9a52..d58fe4d59 100644 --- a/tooling/cli/src/dev.rs +++ b/tooling/cli/src/dev.rs @@ -313,7 +313,12 @@ pub fn setup(options: &mut Options, mobile: bool) -> Result { use crate::helpers::web_dev_server::start_dev_server; if path.exists() { let path = path.canonicalize()?; - let server_url = start_dev_server(path, options.port)?; + let ip = if mobile { + *local_ip_address(options.force_ip_prompt) + } else { + Ipv4Addr::new(127, 0, 0, 1).into() + }; + let server_url = start_dev_server(path, ip, options.port)?; let server_url = format!("http://{server_url}"); dev_path = AppUrl::Url(WindowUrl::External(server_url.parse().unwrap())); diff --git a/tooling/cli/src/helpers/web_dev_server.rs b/tooling/cli/src/helpers/web_dev_server.rs index 00017e139..d1b5c458b 100644 --- a/tooling/cli/src/helpers/web_dev_server.rs +++ b/tooling/cli/src/helpers/web_dev_server.rs @@ -14,7 +14,7 @@ use kuchiki::{traits::TendrilSink, NodeRef}; use notify::RecursiveMode; use notify_debouncer_mini::new_debouncer; use std::{ - net::{Ipv4Addr, SocketAddr}, + net::{IpAddr, SocketAddr}, path::{Path, PathBuf}, sync::{mpsc::sync_channel, Arc}, thread, @@ -31,7 +31,11 @@ struct State { tx: Sender<()>, } -pub fn start_dev_server>(path: P, port: Option) -> crate::Result { +pub fn start_dev_server>( + path: P, + ip: IpAddr, + port: Option, +) -> crate::Result { let serve_dir = path.as_ref().to_path_buf(); let (server_url_tx, server_url_rx) = std::sync::mpsc::channel(); @@ -79,7 +83,7 @@ pub fn start_dev_server>(path: P, port: Option) -> crate::Re }); let (server, server_url) = loop { - let server_url = SocketAddr::new(Ipv4Addr::new(127, 0, 0, 1).into(), port); + let server_url = SocketAddr::new(ip, port); let server = Server::try_bind(&server_url); if !auto_port {