From 4cd381295ac4e7e1589f371fd55daf60c3672582 Mon Sep 17 00:00:00 2001 From: iven Date: Wed, 3 Jun 2026 17:50:55 +0800 Subject: [PATCH] =?UTF-8?q?fix(app):=20Flutter=20Web=20=E5=BC=80=E5=8F=91?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F=E9=BB=98=E8=AE=A4=E8=BF=9E=E6=8E=A5=20localh?= =?UTF-8?q?ost:3000=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - app.dart: kDebugMode 下使用 AppConfig.dev (localhost:3000) - dev.mjs: flutter run 传入 --dart-define API_BASE_URL/SSE_BASE_URL --- app/lib/app.dart | 5 +++-- scripts/dev.mjs | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/app/lib/app.dart b/app/lib/app.dart index c1e01c2..5c47d6c 100644 --- a/app/lib/app.dart +++ b/app/lib/app.dart @@ -10,7 +10,7 @@ // └─ BlocProvider // └─ MaterialApp.router -import 'package:flutter/foundation.dart' show kIsWeb; +import 'package:flutter/foundation.dart' show kIsWeb, kDebugMode; import 'package:flutter/material.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:go_router/go_router.dart'; @@ -37,7 +37,8 @@ class NuanjiApp extends StatelessWidget { @override Widget build(BuildContext context) { // 创建全局依赖(App 生命周期内单例) - final config = AppConfig.fromEnvironment(); + // 开发模式默认使用 localhost,可通过 --dart-define 覆盖 + final config = kDebugMode ? AppConfig.dev : AppConfig.fromEnvironment(); final apiClient = ApiClient(baseUrl: config.apiBaseUrl); final tokenStore = createSecureTokenStore(); final authRepository = AuthRepository(apiClient: apiClient, tokenStore: tokenStore); diff --git a/scripts/dev.mjs b/scripts/dev.mjs index 9f58936..cc617c8 100644 --- a/scripts/dev.mjs +++ b/scripts/dev.mjs @@ -308,7 +308,7 @@ async function startApp() { const appDir = resolve(ROOT, "app"); const flutterBin = IS_WIN ? "D:\\flutter\\bin\\flutter.bat" : "flutter"; - const child = spawn(`${flutterBin} run -d chrome --web-port=${PORTS.app}`, { + const child = spawn(`${flutterBin} run -d chrome --web-port=${PORTS.app} --dart-define=API_BASE_URL=http://localhost:${PORTS.backend}/api/v1 --dart-define=SSE_BASE_URL=http://localhost:${PORTS.backend}/api/v1`, { cwd: appDir, shell: true, stdio: "pipe",