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、全局安装 Browsersync 模块命令(用于提供 web 服务)
npm install -g browser-sync
2、安装 “gulp 和 browser-sync”插件命令(在终端进入到项目根目录执行)
npm install --save-dev gulp browser-sync gulp-sass
3、在项目根目录下提供 "browser-sync" 插件任务配置需要的 src 目录和源文件(源文件放置到 src 目录下)
mkdir src
4、在 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 为例,浏览器无需刷新整个页面而仅仅只是重载 cssvar gulp = require(‘gulp‘), sass = require(‘gulp-sass‘), browserSync= require(‘browser-sync‘).create(); // 创建一个未命名的 Browsersync 实例 // 静态服务器 + 监听 scss/html 文件gulp.task(‘serve‘, [‘sass‘], function() { browserSync.init({ server: { baseDir: ‘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(‘dist/css‘)) .pipe(browserSync.stream());});
5、通过如下命令启动服务,并且打开一个浏览器,访问默认的 URL (http://localhost:3000)
gulp serve
PS:如果没有错误提示信息,证明就没什么问题了。现在去修改源文件,看看浏览器是否可以自动刷新页面。未完待续。。。