web开发神器——browsersync(1)
作为一名前端狗,我们的日常工作除了撸出一手新鲜的代码,剩下的时间就是和各式浏览器,各种手机PK(兼容性调试)。接下来就是无休止的Ctrl+S
,F5
,而且每次都要编辑器浏览器来回切换。据不完全统计,前端每次切换屏幕耗时0.5s,每次点击F5
耗时0.5s,平均每天需切换3600次,等于3600s,等于60分,等于1小时,Ctrl
,Tab
,F5
键每天被点击N次(以上数字纯属虾扯蛋)。为了防止键盘被破坏,为了追求极客之速度,为了,,,停。。。此处为广告时间。接下来就为大家介绍一款神器————browsersync。
browsersync是类似于livereload的东东,简单的说就是它可以帮你本地启动一个静态文件服务器,当你改动某个文件,点击Ctrl+S
,接下来浏览器能够自动刷新并显示你改动后的效果。这样你就不用点击F5
了,有人说这有什么厉害的,只是自动刷新而已,还得切换屏幕,同样是浪费时间。但如果你有外接屏,这时,你会发现,所改及所得,这速度杠杠的。但如果你有两块屏(有钱淫),这时你会发现改完之后两块屏同时刷新了。但如果你有三块屏,或者你有N块屏(想想而已)。N块屏是很少有了,但是有了它,你可以在一块大的显示器上显示IE
,Chrome
,Firefox
等浏览器的窗口。这时你可以看到各个浏览器的显示情况,当你改了文件时,每个浏览器都可以自动刷新。同样对于移动应用来说,你可以将你的页面投射到多个移动终端上。怎么样,这个是不是很酷炫。如果说这个还是不够装13的话,那就要介绍另一个功能,当你用鼠标滚动你的网页时(你的网页长度超过你的浏览器窗口),你会发现,其它的浏览器也会滚动到相应的页面。这,,,牛13。(看到这,大家是不是觉得它可以作为一个遥控?)。除此之外,它还有其他一些炫酷功能会在后续博客更新。
安装
作为前端利器,安装和使用均依赖于nodejs。npm install -g browser-sync
全局安装browser-sync
。mac用户可能需要加sudo,即sudo npm install -g browser-sync
。
安装完成后控制台输入browser-sync -h
,可查看该模块是否安装。同时介绍一个小技巧(Linux大神略过),对于命令行来说,加-v
一般表示查看版本号,-h
表示查看该命令的帮助信息,一般会打印出它所有的参数及其介绍。
使用
比如我创建了一个hello
工程,
|—— hello
| |—— img/
| |—— css/
| |—— js/
| |—— main.html
依次输入如下命令:
1 | cd hello |
这时浏览器会自动打开网页http://localhost:3000
,你可以访问hello目录下的main.html
等静态文件。当然,这个是最基本的一个实现,接下来我们可以通过添加一系列的参数去实现不同的效果。
输入browser-sync -h
,即可显示出下述帮助命令(部分注释中文翻译了下)。
1 | 使用: |
部分常用参数的示例
监听文件
1 | 单个文件(监听main.js的改动) |
改变服务器的映射目录
1 | 映射目录为单个目录(只能访问js目录下的文件) |
显示文件列表
1 | 显示文件列表(显示跟目录下的所有文件列表) |
公网映射
1 | 本地应用映射到公网(映射到公网http://xxx.localtunnel.me) |
浏览器打开方式
1 | 打开本地链接(浏览器打开时显示:http://localhost:3000) |
配置文件
如果嫌弃命令行需输入太多参数,可选择通过读取配置文件的方式
1 | browser-sync start --config path/to/config.js |
但是参数那么多,我怎么知道怎么配置文件怎么写?不用担心,browser-sync已为你准备好一切
1 | cd hello |
这时你可以看见hello
目录下自动生成一个bs-config.js
文件,并生成默认配置内容
|—— hello
| |—— img/
| |—— css/
| |—— js/
| |—— bs-config.js
| |—— main.html
bs-config.js
内容如下:
1 | /* |
其中json配置部分可参考命令行参数配置
结语
在web开发中,coding只占开发中的一小步,剩下的更多的是去做兼容性的调试。虽然只节省了一个F5
的动作,但对开发速度却是一个质的飞跃。本文只是browsersync的冰山一角,还有更多的惊喜等着你去发现。