From f25ab72cb68a6e208f06111daaaadab0ebba62e7 Mon Sep 17 00:00:00 2001 From: eddy Date: Sat, 1 Aug 2026 02:34:49 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=90=AF=E5=8A=A8=E5=BC=80=E5=8F=91?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=99=A8=E6=97=B6=E8=87=AA=E5=8A=A8=E6=89=93?= =?UTF-8?q?=E5=BC=80=E6=B5=8F=E8=A7=88=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 服务器成功启动后自动打开 Tasks 页面 - 开发服务器已运行时重新打开对应页面 - 无法自动打开浏览器时显示手动访问地址 --- serve.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/serve.py b/serve.py index 611d63c..317f464 100644 --- a/serve.py +++ b/serve.py @@ -6,6 +6,7 @@ import argparse import subprocess import sys import time +import webbrowser from pathlib import Path ROOT = Path(__file__).resolve().parent @@ -82,6 +83,12 @@ def server_url(port: int) -> str: return f"http://localhost:{port}/" +def open_browser(port: int) -> None: + url = server_url(port) + if not webbrowser.open(url): + print(f"无法自动打开浏览器,请手动访问:{url}") + + def start(port: int) -> None: if not validate_project(): return @@ -90,6 +97,7 @@ def start(port: int) -> None: if listener: if is_tasks_server(listener, port): print(f"Tasks 开发服务器已运行:{server_url(port)}(PID {listener})") + open_browser(port) return answer = input( @@ -127,6 +135,7 @@ def start(port: int) -> None: time.sleep(0.5) if listener_pid(port) == process.pid: print(f"Tasks 开发服务器已启动:{server_url(port)}(PID {process.pid})") + open_browser(port) else: print("服务启动失败,请确认 Python 可用且端口未被占用。")