38

我很想使用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 运行还是通过命令行运行也没有什么区别。

任何的想法?

4

4 回答 4

58

解决方案非常简单 - 但恕我直言不合逻辑。我的本地实例在http://project.local. 更改它以http://project.dev解决问题。我正在运行 OS X。

于 2014-08-09T13:39:08.397 回答
39

您遇到的情况很可能是针对 .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

...并删除其中一个重复项。

于 2017-07-26T15:48:08.990 回答
0

就我而言,我使用的是 Windows。在分析了萤火虫上的网络选项卡后,我注意到缺少一些图像。一旦我修复了图像,它就工作得很快!

于 2015-08-02T12:37:19.567 回答
0

我尝试了其他方法,并且对我非常有效。

我使用以下命令在我的 Mac 上禁用了 IPv6:

networksetup -setv6off Wi-Fi

您可以像这样重新打开它:

networksetup -setv6automatic Wi-Fi

我不想切换到 .dev,因为我所有的网站都是这样设置的:

Live site: https://www.myawesomesite.com
Local site: https://dev.myawesomesite.com
于 2019-02-14T09:56:02.140 回答