BrowserSync 非常慢
Posted
技术标签:
【中文标题】BrowserSync 非常慢【英文标题】:BrowserSync extremely slow 【发布时间】:2014-09-08 13:48:36 【问题描述】:我很乐意使用BrowserSync 进行开发。但是,页面加载(不仅是在更改后重新加载)非常慢。
我使用proxy
模式。在没有 BrowserSync 的情况下浏览页面应该很快。
一个原因可能是我安装 BrowserSync 时出现以下错误:
> ws@0.4.31 install /usr/local/lib/node_modules/browser-sync/node_modules/socket.io/node_modules/engine.io/node_modules/ws
> (node-gyp rebuild 2> builderror.log) || (exit 0)
CXX(target) Release/obj.target/bufferutil/src/bufferutil.o
SOLINK_MODULE(target) Release/bufferutil.node
SOLINK_MODULE(target) Release/bufferutil.node: Finished
CXX(target) Release/obj.target/validation/src/validation.o
SOLINK_MODULE(target) Release/validation.node
SOLINK_MODULE(target) Release/validation.node: Finished
我从头开始安装节点(使用brew
和包安装程序),但无法摆脱错误。
此外,BrowserSync 是使用 Gulp 还是通过命令行运行都没有区别。
有什么想法吗?
【问题讨论】:
【参考方案1】:解决方案非常简单 - 但恕我直言不合逻辑。我的本地实例在http://project.local
下运行。将其更改为http://project.dev
解决了这个问题。我正在运行 OS X。
【讨论】:
有效。但是……但是……为什么? :-) 如果您也在运行 OS X,我想这与 DNS 查找有关(Bonjour 也使用 .local 域)。 Mac 用户的惊人提示。非常感谢! 在 Linux Ubuntu 14 上遇到了同样的问题,将我的 URL 从“local.domain.co.uk”更改为“domain.dev”效果很好!所以谢谢你,否则永远不会解决它。 请注意,现在 Chrome 中的 .dev 会强制重定向到 https,这是我在本地不想要的。强制我现在使用 .test。【参考方案2】:您遇到的问题很可能是针对 .local 域上的 DNS 查找发出的 Bonjour IPv6 查找的结果。这些 IPv6 查找会产生超时延迟,直到发出原始 IPv4 DNS 查找。
@RicoLeuthold 的解决方案有效,因为 .dev 域不会触发 macOS 上的 Bonjour 查找。但是,如果您已经有许多虚拟主机在 .local 域上运行并且项目也配置为使用这些 .local 域,那么更改所有虚拟主机可能会很糟糕。
替代解决方案
另一种方法是在主机文件中为每个 IPv4 .local 条目添加一个额外的 IPv6 localhost 条目(在 Linux 上:/etc/hosts,在 macOS 上通常:/private/etc/hosts)。
更改此主机内容...
127.0.0.1 phpmyadmin.local
127.0.0.1 project1.local
127.0.0.1 project2.local
...到该主机的内容...
::1 phpmyadmin.local
127.0.0.1 phpmyadmin.local
::1 project1.local
127.0.0.1 project1.local
::1 project2.local
127.0.0.1 project2.local
提示:使用正则表达式编辑器
如果您正在使用能够进行正则表达式搜索/替换的 Atom 或 Sublime Text 等编辑器,请使用以下模式更新您的主机文件:
Search:
(127.0.0.1)(.*)$
Replace:
::1$2\n$1$2
此模式还将 IPv6 条目添加到 hosts 文件顶部的常规 IPv4 localhost 条目。完成搜索/替换后,您应该检查文件顶部是否有重复的条目...
::1 localhost
...并删除其中一个重复项。
【讨论】:
哇哦!这简直让我大吃一惊。现在速度快多了!我想知道为什么当我回家工作时它比我工作时的网络慢。你刚刚救了我!谢谢! 轰隆隆。这是一个非常棒的提示。 @Jpsy 非常感谢 - 我看到每次刷新最多延迟 20 秒,不,几乎是即时的!这对我来说将是一个很好的节省时间:-) 这应该是公认的答案! 快如闪电。使用 BrowserSync + HTTPS 时就像一个魅力。 非常感谢您的解释!很高兴知道为什么某件事需要这么长时间。虽然接受的答案可能已经解决了它,但您已经为我们揭开了它的神秘面纱。我学到了宝贵的一课,关于缓慢 w.r.t 的可能原因。网络/开发服务器!【参考方案3】:就我而言,我使用的是 Windows。在分析了萤火虫上的网络选项卡后,我注意到缺少一些图像。一旦我修复了图像,它就可以快速运行!
【讨论】:
【参考方案4】:我尝试了其他方法,效果很好。
我使用以下命令在我的 Mac 上禁用了 IPv6:
networksetup -setv6off Wi-Fi
您可以像这样重新打开它:
networksetup -setv6automatic Wi-Fi
我不想切换到 .dev,因为我所有的网站都是这样设置的:
Live site: https://www.myawesomesite.com
Local site: https://dev.myawesomesite.com
【讨论】:
以上是关于BrowserSync 非常慢的主要内容,如果未能解决你的问题,请参考以下文章