Flutter 热重载不适用于 VSCode 中的自动保存

Posted

技术标签:

【中文标题】Flutter 热重载不适用于 VSCode 中的自动保存【英文标题】:Flutter hot reload doesn't work on autosave in VSCode 【发布时间】:2021-05-04 15:02:24 【问题描述】:

Flutter hot reloads 每次 VS Code auto-saves 我的项目之前。几个小时前,我开始遇到auto-saving 没有hot-reload 我的应用程序的问题。手动按下Ctrl+S 会触发hot reload,但auto-saving 不会。我已经尝试重新安装 VS Code 和 Flutter SDK,但问题仍然存在。

我新安装的 VS Code 只有以下扩展和设置:

飞镖:v3.19.1 Flutter:v3.19.0Auto-save 设置为 afterDelay of 1000ms

在 vscode 中自动保存时如何热重载?另一个人在两小时前遇到了同样的问题:https://github.com/Dart-Code/Dart-Code/issues/3110

【问题讨论】:

【参考方案1】:

最新版本的 Dart & Flutter 的 VS Code 扩展导致该问题。

v3.20 及更高版本:您可以通过在 VSCode 设置中将Flutter Hot Reload On Save 设置为always,在最新版本中启用自动保存时热重载。

v3.19:他们完全禁用了自动保存时的热重载。

v3.18 及以下: 自动保存时扩展热重载。

【讨论】:

我不明白你为什么要自动保存来触发热重载......那会搞砸你的调试! (并非每个更改都会产生有效的语法或可热重载的源文本。) @RandalSchwartz 它更多的偏好。它使开发变得更加容易,因为它仅在编译器未检测到代码中的任何错误时才热重新加载 @RandalSchwartz 我同意 Uni 的观点。我必须说这是一个不错的功能。如果您每次都必须按 CTRL + S,请禁用自动保存 @akifarhan 他们将在下一个版本中进行设置。可以关注上面的github issue进行更新【参考方案2】:

在此版本的更改说明中。这是一个预期的功能! (http://dartcode.org/releases/v3-19)

上面写着:

#3033: Hot-reload-on-save 不再为 VS Code 的自动保存功能触发的 Save 事件触发。即使没有未保存的更改,手动按保存仍会触发重新加载。

没有人阅读发行说明吗? :)

【讨论】:

没有人阅读它们 :D 这就是为什么我为那些不喜欢我阅读它的人制作这个问答。我最终浪费了几个小时试图修复它。 他们为什么这样做?有什么解决办法吗?【参考方案3】:
Just delete your VS cache folder and VS temp folder.
-> Press windows button and type:

%temp%

%appdata%

-> Check your launch.json in .vscode folder. delete and recreate if necessary.

【讨论】:

我也试过了,但没用。开发人员告诉我这是由最新版本的 dart 和 Flutter 扩展引起的。

以上是关于Flutter 热重载不适用于 VSCode 中的自动保存的主要内容,如果未能解决你的问题,请参考以下文章

颤振热重载不适用于平板电脑模拟器

vscode 在最新的 Flutter 版本上无法热重载

如何解决flutter中的性能和热重载问题?

Flutter get_it 和 FutureBuilder 无法使用热重载

自动完成/智能感知不适用于 VSCode 中的 dart/flutter

Flutter 正在执行热重启而不是热重载 [Ubuntu]