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.0
Auto-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 中的自动保存的主要内容,如果未能解决你的问题,请参考以下文章
Flutter get_it 和 FutureBuilder 无法使用热重载