我很乐意使用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
和软件包安装程序),但无法解决错误。
此外,如果使用Gulp或命令行运行BrowserSync,则没有任何区别。
有什么想法吗?
答案 0 :(得分:52)
解决方案非常简单 - 但不合逻辑的imho。我在http://project.local
下运行了我的本地实例。将其更改为http://project.dev
解决了问题。我正在运行OS X.
答案 1 :(得分:19)
您所体验的很可能是为.local域上的DNS查找发出Bonjour IPv6查找的结果。这些IPv6查找会在发出原始IPv4 DNS查找之前创建超时延迟。
@RicoLeuthold的解决方案有效,因为.dev域不会在macOS上触发Bonjour查找。但是,如果你已经有许多vHosts运行在.local域上,项目配置为使用这些.local域,那么改变你的所有vHosts可能会很糟糕。
替代解决方案
另一种方法是在主机文件中添加额外的IPv6 localhost条目(在Linux上:/ etc / hosts,通常在macOS上:/ private / etc / hosts),用于每个IPv4 .local条目。
更改此主机内容...
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
提示:使用REGEXP编辑器
如果您使用的是能够进行正则表达式搜索/替换的Atom或Sublime Text等编辑器,则可以使用以下模式来更新主机文件:
Search:
(127.0.0.1)(.*)$
Replace:
::1$2\n$1$2
此模式还会将IPv6条目添加到hosts文件顶部的常规IPv4 localhost条目中。在执行搜索/替换之后,您应该检查文件顶部是否有重复的条目...
::1 localhost
...并删除其中一个重复项。
答案 2 :(得分:0)
在我的情况下,我使用的是Windows。在分析了firebug上的网络标签后,我发现很少有图像丢失。一旦我修复了图像,它就能快速工作!
答案 3 :(得分:0)
我尝试了其他方法,并且为我做得很好。
我已使用以下命令在Mac上禁用了IPv6:
networksetup -setv6off Wi-Fi
您可以像这样将其重新打开:
networksetup -setv6automatic Wi-Fi
我不想切换到.dev,因为我所有的站点都设置得像这样:
Live site: https://www.myawesomesite.com
Local site: https://dev.myawesomesite.com