让我发疯的事情突然开始出现在我所有的团队成员中。 如果您在断点处暂停几秒钟,然后继续(F8),浏览器将刷新页面。
它发生在我们的Mac和Windows计算机上。
我们正在使用gulp和浏览器同步运行AngularJS项目。 即使我转过所有观察者,它仍然会发生。
我该怎么办??
答案 0 :(得分:4)
browserSync.init({
files: ['./**/*'],
startPath: '/src',
server: '',
watchOptions: {
ignored: 'node_modules/*',
ignoreInitial: true
},
socket: {
clients: { heartbeatTimeout: 60000 }
}
});
在您的browserSync初始化中添加套接字对象。
答案 1 :(得分:2)
对于遇到此问题的任何人,似乎在新版本中解决的BrowserSync依赖项中都存在问题:https://github.com/BrowserSync/browser-sync/issues/1591
此处提到的另一种解决方案似乎并不能真正解决该问题,如GitHub问题所述:
heartbeatTimeout的增加并非在所有情况下都有用。它只是减少了页面刷新的可能性。
在heartbeatTimeout未结束的情况下有效。我的意思是这样。
想象一下,您已将超时设置为60000 ms。从超时周期开始仅过去了2秒钟。然后按断点停止应用程序10秒钟。 2 + 10 = 12秒,因此应用程序将根据需要恢复工作,而无需刷新页面。
但是,例如,如果从超时周期开始经过了58秒,然后该应用程序被断点停止了10秒。 58 + 10 = 68秒。再加上心跳超时,因此恢复后将通过浏览器同步刷新应用程序。
此问题始于v2.24.5,并已在v2.25.1中得到解决
因此,将BrowserSync更新到v2.25.1之后的任何版本都可以解决您的问题。我目前正在使用v2.26.3,似乎已经为我解决了。
祝您编程愉快! :)