前者调节和测量试验利器——BrowserSync

by admin on 2019年9月24日

10分钟学会前端调试利器——FireBug

2015/09/17 · HTML5,
JavaScript · 1
评论 ·
调试

原文出处:
惟吾德馨(@Allen_Bryant)   

此处记录一下踩过的坑

之前看的这个地址:
也就是 BrowserSync的官网上面关于代理服务器的例子不管怎么试都不行

请看下例子

browser-sync start --proxy "主机名" "css/*.css"
而实际上不管怎么试都不行在git bash here 和cmd 中试了一下结果是都不行,具体情况是可以将本地服务器的地址代理到localhost:3000或者localhost:3001但是一直不能实时刷新修改的文件
后来在网上不断的搜索,试了一下这段代码,突然就可以了
具体代码如下
【之前的代码】能将本地服务器代理到localhost:3001/localhsot:3000,但是不能实时刷新

   browser-sync start –proxy “localhost:8080/whale/”  “layouts/*.css” 

 

 
【改过之后的代码】能将本地服务器代理到localhost:3001/localhost:3000,且能实时刷新修改的代码

 
 browser-sync start –proxy “localhost:8080/whale/” –files “layouts/*.css” 

效果图如下
git bash here


cmd


保存时

背景

前面写了一篇关于Browsersync的文章,但是Browsersync只能调试本地代码,如果要是调试已经上线或者已经发布到测试服务器的代码就不行了。想必做前端的小伙伴都会遇到这个问题吧。下面就给大家介绍一个工具fiddler以及它的一个插件Stave。

概述

  FireBug是一个用于网站前端开发的工具,它是FireFox浏览器的一个扩展插件。它可以用于调试JavaScript、查看DOM、分析CSS、监控网络流量以及进行Ajax交互等。它提供了几乎前端开发需要的全部功能。官方网站:www.getfirebug.com

如何获取Firebug?

因为它是Firefox浏览器的一个扩展插件,所以首先需要下载Firefox浏览器。读者可以访问www.mozilla.com下载并安装Firefox浏览器。安装完成后用它访问

进入下图所示页面。点击”添加到Firefox”,然后点击”立即安装”,最后重新启动Firefox浏览器即可完成安装。

图片 1

转载地址:请戳这里

介绍

先介绍一下fiddler是干啥的,用官网的一句话说就是任何浏览器,系统或平台的免费网络调试代理。支持任何浏览器,任何系统,任何平台。主要特征有:
Web调试
解密HTTPS流量和解压缩Web会话;分析会话数据;调试流量
性能测试
HTTP/HTTPS流量记录
Web会话操作
可以对会话设置断点,也可以修改HTTP请求。可以将把文件请求映射到本地文件。
安全测试

图片来自官网截图

Stave是Fiddler的一个扩展插件,能够让Fiddler把文件请求映射到本地目录。之前调试单个文件的时候一般使用Fiddler自带的AutoResponder功能,不过AutoResponder每条自动响应规则只能对应一个本地文件,
在文件数目较多的时候,使用起来很不方便。

主面板

安装完成之后,在Firefox浏览器的地址后方就会有一个小虫子的图标图片 2。单击该图标后即可展开Firebug的控制台,也可以通过快捷键<F12>来打开控制台。使用Ctrl+F12快捷键可以使Firebug独立打开一个窗口而不占用Firefox页面底部的空间。

图片 3

从上图中可以看出,Firebug包括7个面板:

控制台面板:用于记录日志、概览、错误提示和执行命令行,同时也用于Ajax的调试;

HTML面板:用于查看HTML元素,可以实时地编辑HTML和改变CSS样式,它包括3个子面板,分别是样式、布局和DOM面板;

CSS面板:用于查看所有页面上的CSS文件,可以动态地修改CSS样式,由于HTML面板中已经包含了一个CSS面板,因此该面板将很少用到;

脚本面板:用于显示Javascript文件及其所在的页面,也可以用来显示Javascript的Debug调试,包含3个子面板,分别是监控、堆栈和断点;

DOM面板:用于显示页面上的所有对象;

网络面板:用于监视网络活动,可以帮助查看一个页面的载入情况,包括文件下载所占用的时间和文件下载出错等信息,也可以用于监视Ajax行为;

Cookies面板:用于查看和调整cookie(需要安装下文资源中所提到的Firecookie)。


 

BrowserSync,调试利器–自动刷新

时间:2015-06-02 17:18:17     
阅读:9726      评论:0      收藏:0      [点我收藏+]

标签:

—恢复内容开始—

请想象这样一个场面:你开着两个显示器,一边是IDE里的代码,另一边是浏览器里的你正在开发的应用。此时桌上还放着你的手机,手机里也是这个开发中的应用。然后,你新写了一小段代码,按下了ctrl+s保存。紧接着,你的手机和另一个显示器里的应用,就变成了更新后的效果。你可以马上检查效果是否和你预想的一致,甚至都不需要动一下鼠标…

想起来还不错?嗯,这只是简单地省略掉那个开发过程中会按好多遍的F5刷新。

安装

Fiddler下载地址
Stave下载地址
先安装Fiddler再安装Stave,安装很简单,在这里就不写了。
Stave安装好之后重启一下Fiddler,就可以在Fiddler的有侧看到Stave的tab页,点开之后如下图:

Stave

  控制台面板

1.控制台面板概览

此面板可以用于记录日志,也可以用于输入脚本的命令行。

2.记录日志

Firebug提供如下几个常用的记录日志的函数:

console.log:简单的记录日志;

console.debug:记录调试信息,并且附上行号的超链接;

console.error:在消息前显示错误图标,并且附上行号的超链接;

console.info:在消息前显示消息图标,并且附上行号的超链接;

console.warn:在纤细钱显示警告图标,并且附行号的超链接。

在空白的html页面中,向<body>标签中加入<script>标签,代码如下:

JavaScript

<script type=”text/javascript”> console.log(‘this is log
message’); console.debug(‘this is debug message’); console.error(‘this
is error message’); console.info(‘this is info message’);
console.warn(‘this is warn message’); </script>

1
2
3
4
5
6
7
<script type="text/javascript">
  console.log(‘this is log message’);
  console.debug(‘this is debug message’);
  console.error(‘this is error message’);
  console.info(‘this is info message’);
  console.warn(‘this is warn message’);
</script>

执行代码后可以在Firebug中看到下图所示的结果,以前习惯了用alert来调试程序,然而在Firebug下可以使用console。

图片 4

3.格式化字符串输出和多变量输出

这个功能类似于C语言中的语法,可以在console记录日志的方法里使用。

%s:字符串  %d,%i:数字  %f:浮点数  %o:链接对象

同时,这几个函数支持多个变量。代码如下:

JavaScript

<script type=”text/javascript”> var
kid=”孩子”,count=”3″,man=”Allen”; var
sport1=”篮球”,sport2=”羽毛球”,sport3=”网球”;
console.log(“%d个%s在玩游戏”,count,kid);
console.log(count,”个”,kid,”在玩游戏”);
console.log(“%s擅长的运动有:”,man,sport1,sport2,sport3);
</script>

1
2
3
4
5
6
7
<script type="text/javascript">
  var kid="孩子",count="3",man="Allen";
  var sport1="篮球",sport2="羽毛球",sport3="网球";
  console.log("%d个%s在玩游戏",count,kid);
  console.log(count,"个",kid,"在玩游戏");
  console.log("%s擅长的运动有:",man,sport1,sport2,sport3);
</script>

运行代码后效果如下图所示:

图片 5

Firebug控制台还提供了其他功能,例如检测函数执行时间、消息分组、测试驱动、跟踪、计数以及查看Javascript概况等。更多资料可以访问.

4.面板内的子菜单

控制台面板内有一排子菜单,分别是清除、保持、概况、全部等。

图片 6

“清除”用于清除控制台中的内容。“保持”则是把控制台中的内容保存,即使刷新了依然还存在。“全部”则是显示全部的信息。后面的“错误”、“警告”、“消息”、“调试信息”、“Cookies”菜单则是对所有进行了一个分类。

“概况”菜单用于查看函数的性能。下面通过一个例子来演示,代码如下:

JavaScript

<button type=”button” id=”btn1″>执行循环1</button>
<button type=”button” id=”btn2″>执行循环2</button>
<button type=”button” id=”btn3″>执行循环3</button>
<script type=”text/javascript”> var f1=function(){ for(var i
=0;i<1000;i++) for(var j=0;j<1000;j++); } function f2(){ for(var i
=0;i<1000;i++) for(var j=0;j<1000;j++); }
document.getElementById(“btn1”).onclick=f1;
document.getElementById(“btn2”).onclick=f2;
document.getElementById(“btn3”).onclick=function(){ for(var i
=0;i<1000;i++) for(var j=0;j<1000;j++); } </script>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<button type="button" id="btn1">执行循环1</button>
<button type="button" id="btn2">执行循环2</button>
<button type="button" id="btn3">执行循环3</button>
<script type="text/javascript">
    var f1=function(){
        for(var i =0;i<1000;i++)
            for(var j=0;j<1000;j++);
    }
    function f2(){
        for(var i =0;i<1000;i++)
            for(var j=0;j<1000;j++);
    }
    document.getElementById("btn1").onclick=f1;
    document.getElementById("btn2").onclick=f2;
    document.getElementById("btn3").onclick=function(){
        for(var i =0;i<1000;i++)
            for(var j=0;j<1000;j++);
    }
</script>

打开页面,显示三个按钮:

图片 7

打开页面后,先启用Firebug控制台面板,然后单击“概况”菜单,如下图所示:

图片 8

从上图中可以看到,出现了一行字,“概况收集中。再次点击“概况”查看结果。”,接着,依次单击“执行循环1”、“执行循环2”、“执行循环3”三个按钮各一次,并再次单击“概况菜单”,即可看到如下图所示结果:

图片 9

可以看到Firebug显示出了非常详细的报告。包括每个函数的函数名、调用次数、占用时间的百分比、占用时间、时间、平均时间、最小时间、最大时间以及所在的文件的行数等信息。

5.Ajax调试

控制台面板也可用于Ajax调试,在一定程度上可以取代网络面板。例如我打开一个页面,可以在Firebug控制台看到本次Ajax的Http请求头信息和服务器响应头信息。如下图,它会显示出本次使用的Ajax的GET方法、地址、耗时以及调用Ajax请求的代码行数。最重要的是有5个标签,即参数、头信息、响应、HTML、Cookies.第一个标签用于查看传递给服务器的参数;第二个标签用于查看响应头信息和请求头信息;第三个标签用于查看服务器返回的内容;第四个标签则是查看服务器返回的HTML结构;第五个标签用于查看相应的Cookies。

图片 10

如果看不到任何信息的出现,可能是将此功能关闭了,可以单击“控制台”旁边的下拉箭头,将“显示XMLHttpRequests”前面的勾勾选上即可。

图片 11

自动刷新

“自动刷新”并不是新的概念,但对关注“可见”的预览效果的前端开发者来说,它非常好用,可以节约很多时间。

我也不是现在才知道这个概念。在这之前,我一直在用LiveReload,它是一个名字上更明显地写着“自动刷新”的工具。LiveReload主要搭配浏览器插件使用,是很棒的自动刷新工具。

不过,现在我要介绍的是BrowserSync。你会在接下来的内容里看到,它是一个更新、更方便的开发工具。

使用

在Stave空白区域右键-添加,然后填写规则。第一行填写的是你要调试的服务器路径,第二行是你本地对应的文件目录。剩下的其他选项可以默认就行。点击确定之后就可以愉快的使用了。如果你要是在手机上访问的话,记得给手机设置代理就行(服务器地址就是你电脑的Ip地址,端口8888。手机和电脑要在同一个局域网内)

添加规则

HTML面板

1.查看和修改HTML代码

Html面板的强大之处就是能查看和修改HTML代码,而且这些代码都是经过格式化的。下面以我的一个浏览器主页来做讲解。

图片 12

在页面中蓝色部分表示元素本身,紫色表示padding部分,黄色表示margin部分。同时可以实时地添加、修改和删除HTML节点以及属性,如下图所示。另外,单击script节点还可以直接查看脚本,此处的脚本无论是内嵌在HTML中还是外部导入的,都可以查看到。同样这也适用于<style>标签内嵌或者导入的CSS样式和动态创建HTML代码。

图片 13

在HTML控制台的左侧可以看到整个页面当前的文档结构,可以通过单击“+”来展开。当单击相应的元素时,右侧面板中就会显示出当前元素的样式、布局以及DOM信息。而当光标移动到HTML树中相应元素上时,上面页面中相应的元素将会被高亮显示。

例如,将光标移动到一个<P>标签上,显示效果如下图所示:

图片 14

在HTML控制台的左侧可以看到整个页面当前的文档结构,可以通过单击“+”来展开。当单击相应的元素时,右侧面板中就会显示出当前元素的样式、布局以及DOM信息。而当光标移动到HTML树中相应元素上时,上面页面中相应的元素将会被高亮显示。

例如,将光标移动到一个<P>标签上,显示效果如下图所示:

2.查看(Inspect)

利用查看(Inspect)功能,可以快速地寻找到某个元素的HTML结构,如图:

图片 15

当单击”Inspect”按钮后,用鼠标在网页上选中一个元素时,元素会被一个蓝色的框框住,同时下面的HTML面板中相应的HTML树也会展开并且高亮显示。再次单击后即可退出该模式,并且底部的HTML树也保持在这个状态。通过这个功能,可以快速寻找页面内的元素,调试和查找相应代码非常方便。刷新网页后,页面显示的仍然是用Inspect选中的区域。

HTML面板下方的“编辑”按钮可以用于直接编辑选中的HTML代码,而后面显示的是当前元素在整个DOM中的结构路径。

3.查看DOM中被脚本更改的部分

通过JavaScript来改变样式属性的值可以完成一些动画效果。打开页面后,利用查看(Inspect)功能来选择相应的HTML代码,例如,选中“要闻”,如下图所示:

图片 16

单击“国内”标签后,出现下图所示效果:

图片 17

通过上图可以看出,HTML查看器会将页面上改变的内容页记录下来,并以黄色高亮表示。有了这个功能,网页的暗箱操作将彻底成为历史。我们可以使用该功能查看其它网站的动画效果是如何实现的。

4.查看和修改元素的样式

在右侧的样式面板中,展示了此元素当前所有的样式。所有的样式都可以实时地禁用和修改,如下图所示,通过在”text-align:center”前单击会出现禁用的标记,这样就可以禁用此规则。通过直接在样式value值上单击就可以修改。

图片 18

单击“布局”面板即可看到此元素具体的布局属性,这是一个标准的盒模型。通过“布局”面板,可以很容易地看到元素的偏移量、外边距、边框、内边距和元素的高度、宽度等信息,如下图所示:

图片 19

5.查看DOM的信息

单击“DOM”面板后可以看到此元素的详细的DOM信息以及函数和事件,如下图所示:图片 20

BrowserSync

LiveReload有所不足的地方是,需要搭配浏览器插件。但是,插件是取决于浏览器的,Chrome和Firefox都有可用插件(见这页),但IE,或者我手机上的浏览器,就不能这样了。这时候只能手工向页面里添加一段<script>代码(其实插件也是做了这件事),而且还要记得结束后再手工移除。

BrowserSync的一般用法则不需要浏览器插件,也不用手工添加代码(尽管也提供那样的用法)。一句控制台的命令之后,无论是在手机里还是电脑,无论用多少个浏览器(经测试,IE8+及其它),都可以拥有自动刷新的功能。

BrowserSync是怎么做到的?请看它的安装及使用。

CSS、DOM和网络面板

这3个面板相对于前面2个面板比较次要,CSS和DOM面板与HTML面板中右侧的面板功能相似,但不如HTML面板灵活,因此一般使用得很少。

CSS面板特有的一个功能就是可以分别详细查看页面中内嵌以及动态导入的样式。如下图所示:

图片 21

单击CSS面板后就可以分别查看相应的样式。此处展开的样式都是经过格式化的,适合于学习CSS的代码格式和规范。

而在网络面板中,相对有一些强大的功能,例如打开某个网站首页,Firebug显示效果如下图所示:

图片 22

该页面可以监视每一项元素的加载情况,包括脚本,图片等的大小以及加载用时等,对于页面优化有着极其重要的意义。

此外,顶部还可以分类查看元素的HTML、CSS、JS等的加载情况,使分析更加灵活。

安装及使用

安装Node后,通过npm安装BrowserSync:

npm install -g browser-sync

然后,就可以开始使用了。打开控制台进入项目所在的目录,然后输入像这样的命令:

browser-sync start --server --files "css/*.css"

这个命令用于纯静态站点,也就是仅一些.html文件的情况。后面的--files "css/*.css",是指监听css目录中的后缀名为.css的文件。请注意这个命令里的start --server,这其实是BrowserSync自己启动了一个小型服务器。

如果是动态站点,则使用代理模式。例如PHP站点,已经建立了一个本地服务器如http://localhost:8080,此时会是这样的命令:

browser-sync start --proxy "localhost:8080" --files "css/*.css"

BrowserSync会提供一个新地址(如未被占用的话,http://localhost:3000)用于访问。

好了,为什么BrowserSync不需要浏览器插件?因为它使用了服务器的形式(直接或代理)来处理项目文件。默认情况下,访问它的服务器上的网页,可以看到这样的提示签:

图片 23

这说明当前浏览的网页已连接到BrowserSync。查看一下源码,会发现它们都被添加了与BrowserSync有关的一段<script>代码,就像LiveReload浏览器插件做的那样。这些代码会在浏览器和BrowserSync的服务器之间建立web
socket连接,一旦有监听的文件发生变化,BrowserSync会通知浏览器。

如果发生变化的文件是css,BrowserSync不会刷新整页,而是直接重新请求这个css文件,并更新到当前页中,效果像这样:

图片 24

显然,这感觉更加快捷。如果你正在开发的是一个单页应用(SPA),刷新整页会回到初始视图,而你又需要修改后面的某一个视图时,这一功能尤其有用。

  脚本面板

脚本面板不仅可以查看页面内的脚本,而且还有强大的调试功能。

在脚本面板的右侧有“监控”、“堆栈”和“断点”三个面板,利用Firebug提供的设置断掉的功能,可以很方便地调试程序,如下图所示:

图片 25

1.静态断点

例如test.html文件,代码如下:

XHTML

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“; <html
xmlns=”; <head> <script
type=”text/javascript”> function doSomething(){ var lab =
document.getElementById(‘messageLabel’); arrs=[1,2,3,4,5,6,7,8,9];
for(var arr in arrs){ lab.innerHTML+=arr+”<br />” } }
</script> </head> <body> <div> <div
id=”messageLabel”></div> <input type=”button” value=”Click
Here” onClick=”doSomething();”/> </div> </body>
</html>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <script type="text/javascript">
        function doSomething(){
            var lab = document.getElementById(‘messageLabel’);
            arrs=[1,2,3,4,5,6,7,8,9];
            for(var arr in arrs){
                lab.innerHTML+=arr+"<br />"
            }
        }
    </script>
</head>
<body>
    <div>
        <div id="messageLabel"></div>
        <input type="button" value="Click Here" onClick="doSomething();"/>
    </div>
</body>
</html>

运行代码后可以看到下图所示效果。图中加粗并有颜色的行号表示此处为JavaScript代码,可以在此处设置断点。比如在第6行这句代码前面单击一下,那它前面就会出现一个红褐色的圆点,表示此处已经被设置了断点。此时,在右侧断点面板的断点列表中就出现了刚才设置的断点。如果想暂时禁用某个断点,可以在断点列表中去掉某个断点的前面的复选框中的勾,那么此时左侧面板中相应的断点就从红褐色变成了红灰褐色了。

图片 26

设置完断点之后,我们就可以调试程序了。单击页面中的“Click
Here”按钮,可以看到脚本停止在用谈黄色底色标出的那一行上。此时用鼠标移动到某个变量上即可显示此时这个变量的value。显示效果如下:

图片 27

此时JavaScript内容上方的图片 28四个按钮已经变得可用了。它们分别代表“继续执行”、“单步进入”、“单步跳过”和“单步退出”。

继续执行<F8>:当通过断点来停止执行脚本时,单击<F8>就会恢复执行脚本。

单步进入<F11>:允许跳到页面中的其他函数内部。

单步跳过<F10>:单击<F10>来直接跳过函数的调用即跳到return之后。

单步退出<shift+F11>:允许恢复脚本的执行,直到下一个断点为止。

单击“单步进入”按钮,代码会跳到下一行,显示效果如下:

图片 29

图片 30

从上图可以看出,当鼠标移动到“lab”变量上时,就可以显示出它的内容是一个DOM元素,即“div#messageLabel”。

此时将右侧面板切换到“监控”面板,这里列出了几个变量,包括“this”指针的指向以及“lab”变量。单击“+”可以看到详细的信息。显示如下:

图片 31

2.条件断点

在“lab.innerHTML+=arr+”<br
/>””这行代码前面的序号上单击鼠标右键,就可以出现设置条件断点的输入框。在该框内输入“arr==5”,然后回车确认,显示效果如下:

图片 32

最后单击页面的“Click
Here”按钮。可以发现,脚本在“arr==5”这个表达式为真时停下了,因此“5”以及之后的数字没有显示到页面中。下图分别是正常效果和设置了条件断点之后的显示效果对比:

图片 33图片 34

文件匹配

从BrowserSync的命令来看,很重要的一点就是通过--files指定需要监听的文件。有关这里的文件匹配模式(称为glob)的详情,请参考isaacs‘s
minimatch。

经过我自己的尝试,如果简单只是想要监听整个项目,可以写成这样:

browser-sync start --server  --files "**"

此时,BrowserSync仍然会正确地判断文件变化是否是css。

资源

快捷键:按<F12>可以快速开启Firebug,如果想获取完整的快捷键列表,可以访问.

问题:如果安装过程中遇到了困难,可以查看Firebug的Q&A,网址为.

Firebug插件:Firebug除了本身强大的功能之外,还有基于Firebug的插件,它们用于扩充Firebug的功能。比如Google公司开发Page
Speed插件,开发人员可以使用它来评估他们网页的性能,并获得有关如何改进性能的建议。Yahoo公司开发的用于检测页面整体性能的YSlow和用于调试PHP的FirePHP。还有用于调试Cookie的Firecookie等。

加入到Gulp使用

Gulp是现在流行的自动化工具,但BrowserSync并没有Gulp插件版,因为并不需要。BrowserSync有自己独立的API,将它注册为gulp的一个task即可。下面是一段gulpfile.js的示例:

Gulp是现在流行的自动化工具,但BrowserSync并没有Gulp插件版,因为并不需要。BrowserSync有自己独立的API,将它注册为gulp的一个task即可。下面是一段gulpfile.js的示例:

var gulp = require(‘gulp‘);
var browserSync = require(‘browser-sync‘);

gulp.task(‘browser-sync‘, function() {
    browserSync({
        files: "**",
        server: {
            baseDir: "./"
        }
    });
});

gulp.task(‘default‘, ["browser-sync"]);

这时候运行gulp将等同于前文的browser-sync start --server --files "**"。更多的用法示例请查看gulp-browser-sync。

总结

通过本文的学习,读者可以掌握Firebug的基本功能。Firebug已经逐渐成为一个调试平台,而不仅仅是一个简单的Firefox扩展插件。学好Firebug能给以后的学习和工作提供一定的帮助。

参考文献:《锋利的JQuery(第2版)》

1 赞 3 收藏 1
评论

图片 35

完整选项

到此为止,介绍的都是BrowserSync的基本用法。在控制台里尝试只输入:

browser-sync

你会看到BrowserSync完整的控制台命令指南。其中可以看到有这个命令:

browser-sync init

运行它,将在当前目录生成一个配置文件bs-config.js

参照官方文档修改这个文件,然后运行

browser-sync start --config bs-config .js

就将以bs-config.js的完整配置信息运行BrowserSync。

不只是自动刷新

BrowserSync并不只是一个自动刷新工具,它还有许多其他功能。默认配置下,BrowserSync会在多个浏览器中同步滚动条位置,表单行为和点击事件。例如,表单行为的情形像这样:

图片 36

我觉得这是很酷的功能!想象一下桌上摆很多个不同屏幕尺寸的手机来测试的情景,你操作一个,就会带动其他的一起!当然,这些功能还可以在不需要的时候关闭。

UI界面及其他

下面是一个BrowserSync的控制台输出示例:

图片 37

可以看到还有一个叫做UI的一个地址,它是BrowserSync提供的一个简易控制面板。BrowserSync最常用的几个配置选项,都可以在这个面板里调整。

在面板里面你还会发现那个经典的远程调试工具weinre也在这:

图片 38

BrowserSync目前已知的一点问题

前文提到,如果发生变化的文件是css,BrowserSync会以无刷新方式来更新,这是一个很棒的效果。如果使用scss、less等预编译器,将监听设置为编译后的css文件即可。

但是,Web应用框架Rails会有一些问题。在开发环境中,css是在被请求的时候编译(Rails一般使用sass)再返回给浏览器的,它只有缓存,而没有实际的.css文件。因此,BrowserSync的文件监听将无法指向它们,而如果指向sass文件,浏览器只会以整页刷新的形式来处理。这个问题可以参见Github上的issue。

一个可行的解决方法是用其他工具替代Rails的Asset
Pipeline。但在这里,我推荐另一个解决方案:使用LiveReload(LiveReload你还是有点水平的!)。经测
试,LiveReload在Rails中也可以处理好css的快捷更新。关于LiveReload做到这一点的原理,你可以阅读Lightning-Fast
Sass Reloading in
Rails。

也期待BrowserSync可以在未来解决这个问题。

结语

想要在开发中更流畅,更快捷?请尝试BrowserSync!节约一点时间,你也许就可以做到更多。

—恢复内容结束—

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图