Browsersync 的简介:

            Browsersync 是一个 node 模块,它能让浏览器实时、快速响应您的文件更改(html、js、css、sass、less 等)并自动刷新页面。更重要的是 Browsersync 可以同时在PC、平板、手机等设备下进项调试。您可以想象一下:“假设您的桌子上有 pc、ipad、iphone、android 等设备,同时打开了您需要调试的页面,当您使用 Browsersync 后,您的任何一次代码保存,以上的设备都会同时显示您的改动”。无论您是前端还是后端工程师,使用它将提高您 30% 的工作效率。有了它,您不用在多个浏览器、多个设备间来回切换,频繁的刷新页面。更神奇的是您在一个浏览器中滚动页面、点击等行为也会同步到其他浏览器和设备中,这一切还可以通过可视化界面来控制。(Browsersync 官网:http://www.browsersync.cn/)

            使用 Browsersync 和 gulp,你可以轻松地搭建一个本地开发服务器,然后在同一个 wifi 中的任何设备都可以方便地访问到。Browsersync 同时集成了 live-reload 所以不需要另外做配置了。


一、gulp 和 Browsersync 的联合使用

1、安装 “gulp 和 browser-sync”插件命令(在终端进入到项目根目录执行)

            npm install --save-dev  gulp browser-sync gulp-sass

2、在项目根目录下提供 "browser-sync" 插件任务配置需要的 src 目录和源文件(源文件放置到 src 目录下)

            mkdir src

3、在 gulpfile.js 文件中配置使用 "browser-sync"

 具体示例:
// Browsersync 的简单使用(静态服务器)
// 将 src 目录下的所有文件加到服务器中,并且在文件发生改变之后所有的浏览器都会自动刷新
var gulp = require('gulp'),    
     browserSync= require('browser-sync').create();    // 创建一个未命名的 Browsersync 实例  
gulp.task('serve', function () {                                      // 自定义 "serve" 任务    
   browserSync.init({                                                    // Browsersync 初始化配置
       server: {      
               baseDir: 'src'                                                
       }  
   });  
   // 监视文件改动并重新载入
   gulp.watch(['html/*.html', 'css/**/*.css', 'js/**/*.js'], {cwd: 'src'}, browserSync.reload);
});

具体示例:
// SASS + CSS 注入
// 当 css 文件文件预处理之后再重载它们。以 sass 为例,浏览器无需刷新整个页面而仅仅只是重载 css
var gulp = require('gulp'),  
     sass = require('gulp-sass'),
     browserSync= require('browser-sync').create();    // 创建一个未命名的 Browsersync 实例

// 静态服务器 + 监听 scss/html 文件
gulp.task('serve', ['sass'], function() {
   browserSync.init({
       server: 'src'
   });  

   gulp.watch('src/sass/*.scss', ['sass']);
   gulp.watch('src/html/*.html').on('change', browserSync.reload);
});

// 将 sass 编译后的 css 注入到浏览器里实现更新
gulp.task('sass', function() {
   return gulp.src('src/sass/*.scss')
       .pipe(sass())
       .pipe(gulp.dest('src/css'))
       .pipe(browserSync.stream());
});

4、通过如下命令启动服务,并且打开一个浏览器,访问默认的 URL (http://localhost:3000)

            gulp serve

PS:如果没有错误提示信息,证明就没什么问题了。现在去修改源文件,看看浏览器是否可以自动刷新页面。未完待续。。。