فهرست منبع

fix(cli): use local ip addr for built-in server on mobile, closes #6454 (#6631)

Co-authored-by: Lucas Fernandes Nogueira <lucas@tauri.studio>
fix(cli): use local ip addr for built-in server on mobile, closes #6454
Amr Bashir 2 سال پیش
والد
کامیت
7fec0f083c
3فایلهای تغییر یافته به همراه19 افزوده شده و 4 حذف شده
  1. 6 0
      .changes/cli-built-in-dev-server-mobile.md
  2. 6 1
      tooling/cli/src/dev.rs
  3. 7 3
      tooling/cli/src/helpers/web_dev_server.rs

+ 6 - 0
.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.

+ 6 - 1
tooling/cli/src/dev.rs

@@ -313,7 +313,12 @@ pub fn setup(options: &mut Options, mobile: bool) -> Result<AppInterface> {
       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()));
 

+ 7 - 3
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<P: AsRef<Path>>(path: P, port: Option<u16>) -> crate::Result<SocketAddr> {
+pub fn start_dev_server<P: AsRef<Path>>(
+  path: P,
+  ip: IpAddr,
+  port: Option<u16>,
+) -> crate::Result<SocketAddr> {
   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<P: AsRef<Path>>(path: P, port: Option<u16>) -> 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 {