【问题标题】:BrowserSync extremely slowBrowserSync 非常慢
【发布时间】: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 还是通过命令行运行都没有区别。

有什么想法吗?

【问题讨论】:

    标签: node.js performance browser sync browser-sync


    【解决方案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
      

      【讨论】:

        猜你喜欢
        • 2018-07-15
        • 1970-01-01
        • 2015-05-22
        • 1970-01-01
        • 2017-12-12
        • 2015-06-14
        • 2013-05-14
        • 2021-05-24
        • 1970-01-01
        相关资源
        最近更新 更多