如何在调试模式下构建颤振 Web 应用程序?

pol*_*a-c 13 flutter-web

flutter build web 将通过混淆和缩小来构建我的 flutter 应用程序。

我希望我的错误堆栈是可读的。

我应该如何修改命令?

Ric*_*aux 12

这是一篇旧帖子,但我找到了答案。

如果您使用此行构建应用程序:

flutter build web --profile --source-maps

然后,当您打印堆栈跟踪时,您将得到如下内容:

Exception: Hello
at Object.wrapException (js_helper.dart:1123:37)
at _MyHomePageState__incrementCounter_closure.call$0 (main.dart:64:7)
at _MyHomePageState.setState$1 (framework.dart:1114:28)
at _MyHomePageState._incrementCounter$0 (main.dart:57:5)
at tear_off.<anonymous> (js_helper.dart:2099:9)
at _InkResponseState.handleTap$0 (framework.dart:909:26)
at tear_off.<anonymous> (js_helper.dart:2099:9)
at TapGestureRecognizer.invokeCallback$1$3$debugReport (recognizer.dart:253:16)
at TapGestureRecognizer.invokeCallback$2 (recognizer.dart:239:6)
at TapGestureRecognizer.handleTapUp$2$down$up (tap.dart:627:11)
Run Code Online (Sandbox Code Playgroud)

如果您在发布版本中使用 --source-maps ,您仍然会获得 dart 文件和行号,但堆栈跟踪中的类/方法名称将被混淆。

而且,如果您将该lib目录复制到构建的 Web 目录的根目录中,当您单击堆栈跟踪中的 dart 文件/行号时,它将显示源代码。另外,您可以在 dart 代码中设置断点,就像您在flutter run web.


djp*_*ado 11

尝试:

flutter build web --profile --dart-define=Dart2jsOptimization=O0

看:

https://github.com/flutter/flutter/blob/720dff6a94bd054e82ec4bf84b5cb802bbc52ddd/packages/flutter_tools/lib/src/build_system/targets/web.dart#L238-L239

  • 这与调试模式不同。在调试模式(和“flutter run -d chrome”)下,执行“assert”表达式。使用此命令,它们不会,并且明显的“flutter build web --debug”失败并显示“无法找到名为“debug”的选项” (3认同)

Xav*_*r P 8

github 上有一个关于此功能的问题,请随意投票;)

https://github.com/flutter/flutter/issues/96283