【发布时间】:2018-07-30 08:06:19
【问题描述】:
让我发疯的事情,突然发生在我所有的团队成员身上。 如果您在断点处暂停超过几秒钟,然后继续 (F8),浏览器会刷新页面。
它发生在我们的 mac 和 windows 机器上。
我们正在运行一个使用 gulp 和浏览器同步的 AngularJS 项目。 即使我关闭所有的观察者,它仍然会发生。
我能做什么??
【问题讨论】:
标签: browser gulp browser-sync
让我发疯的事情,突然发生在我所有的团队成员身上。 如果您在断点处暂停超过几秒钟,然后继续 (F8),浏览器会刷新页面。
它发生在我们的 mac 和 windows 机器上。
我们正在运行一个使用 gulp 和浏览器同步的 AngularJS 项目。 即使我关闭所有的观察者,它仍然会发生。
我能做什么??
【问题讨论】:
标签: browser gulp browser-sync
browserSync.init({
files: ['./**/*'],
startPath: '/src',
server: '',
watchOptions: {
ignored: 'node_modules/*',
ignoreInitial: true
},
socket: {
clients: { heartbeatTimeout: 60000 }
}
});
add socket object in your browserSync init.
【讨论】:
对于遇到此问题的任何人,似乎 BrowserSync 的依赖项中存在一个问题,该问题已在较新版本中得到解决:https://github.com/BrowserSync/browser-sync/issues/1591
这里提到的其他解决方案似乎并没有真正解决问题,如 GitHub 问题中所述:
heartbeatTimeout 的增加并非在所有情况下都有帮助。它只是减少了页面刷新的可能性。
在 heartbeatTimeout 未结束的情况下有效。我的意思如下。
假设您已将超时设置为 60000 毫秒。从超时周期开始仅过去了 2 秒。然后通过断点停止应用程序 10 秒。 2 + 10 = 12 秒,因此应用程序将根据需要恢复工作,而无需刷新页面。
但是如果从超时周期开始已经过去了 58 秒,例如,然后应用程序被断点停止 10 秒。 58 + 10 = 68 秒。超过心跳超时,所以应用程序将在恢复后由 browsersync 刷新。
此问题从 v2.24.5 开始,并在 v2.25.1 中得到解决
因此,将 BrowserSync 更新到 v2.25.1 之后的任何版本应该可以解决您的问题。我目前使用的是 v2.26.3,它似乎已经为我解决了。
编码愉快! :)
【讨论】: