博客已迁移至http://zlwis.me

很早就听说过BrowserSync,也看过一些相关文章,可就是没用过。之前一直在用Gulp开发项目,每次编写完Sass后还要用按F5刷新页面看效果,想想也是够傻的,这么好用的东西竟然现在才开始用。

BrowserSync可以同时同步刷新多个浏览器,更神奇的是你在一个浏览器中滚动页面、点击按钮、输入框中输入信息等用户行为也会同步到每个浏览器中。

安装browser-sync模块

    npm install browser-sync -g

命令行直接使用

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

使用上面命令会开启一个迷你服务器,自动帮你打开浏览器,默认地址localhost:3000,默认打开index.html,如果没有,需要手动加上你要打开的页面,如localhost:3000/test.html

通常你不会需要默认的地址,所以需要使用代理模式:

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

Browsersync + Gulp

    var gulp = require('gulp'),sass = require('gulp-ruby-sass'),autoprefixer = require('gulp-autoprefixer'), minifycss = require('gulp-minify-css'), rename = require('gulp-rename'), notify = require('gulp-notify'); var browserSync = require('browser-sync').create(); gulp.task('sass', function() { return sass('sass/style.scss', {style: "expanded"}) //.pipe(sass({style: "expanded"})) .pipe(autoprefixer('last 2 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4')) .pipe(rename({suffix: '.min'})) .pipe(minifycss()) .pipe(gulp.dest('css')) .pipe(notify({ message: 'Styles task complete' })) .pipe(browserSync.stream()); }); gulp.task('serve', ['sass'], function() { browserSync.init({ server: "./" }); gulp.watch("sass/*.scss", ['sass']); gulp.watch("*.html").on('change', browserSync.reload); }); gulp.task('default', ['serve']);

其中

    gulp.watch("sass/*.scss", ['sass']);

会在编译完sass后,以无刷新方式更新页面。

    gulp.watch("*.html").on('change', browserSync.reload);

会在修改html文件后刷新页面。

如果需要在修改js后刷新页面,可以像下面这样:

    gulp.task('sass', function() {return sass('sass/style.scss', {style: "expanded"})//.pipe(sass({style: "expanded"})) .pipe(autoprefixer('last 2 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4')) .pipe(rename({suffix: '.min'})) .pipe(minifycss()) .pipe(gulp.dest('css')) .pipe(notify({ message: 'Styles task complete' })) .pipe(browserSync.stream()); }); gulp.task('js', function () { return gulp.src('js/*js') .pipe(browserify()) .pipe(uglify()) .pipe(gulp.dest('dist/js')) .pipe(browserSync.stream());; }); gulp.task('serve', ['sass', 'js'], function() { browserSync.init({ server: "./" }); gulp.watch("sass/*.scss", ['sass']); gulp.watch("*.html").on('change', browserSync.reload); gulp.watch("js/*.js", ['js']) }); gulp.task('default', ['serve']);

BrowserSync确实是一个好东西!

转载于:https://www.cnblogs.com/yangwenzhi/p/6912733.html

在Gulp中使用BrowserSync相关推荐

  1. (40)Gulp中使用BootStrap

    一.Gulp中安装BootStrap插件 二. 示例 1.安装bootstrap和jquery包(注意:因为bootstrap是依赖于jquery的) 安装命令:cnpm i bootstrap@3. ...

  2. gulp插件之browser-sync安装报错

    2019独角兽企业重金招聘Python工程师标准>>> 最近做前端开发,一直用gulp来写一些自动化脚本.之前用的npm的镜像为edunpm,很简单,因为这个镜像非常的快. 但是不知 ...

  3. gulp中使用babel-polyfill编译es6拓展语法

    今天想在新项目中使用es6的generators,发现虽然gulp已经有了babel编译,但仍会报错,网上查找后发现解决办法是加载polyfill,但是找到的办法都不试用我的项目. 解决办法:在ind ...

  4. angular1x初始与架构演进(四)gulp配置+OcLazyLoad中资源MD5时间轴更新

    个人不是很喜欢非覆盖式更新这个模式:在一个版本中资源会出现不同的时间轴版本,而且这些版本会一直存在,导致项目越来越大,至于管理这个功能其实git就有提供,webstrom也有提供历史记录,所以这种模式 ...

  5. gulp + browsersync实现页面自动刷新

    写习惯了vue,特别喜欢vue的自动刷新功能,于是琢磨在node中如何自动刷新,使用过nodemon, 但是感觉效果差点,看到网上有gulp + livereload的方案和gulp +browser ...

  6. npm 引用子项目模块_Java / Web项目中的NPM模块Browser-Sync

    npm 引用子项目模块 Browser-Sync是一个方便的基于Node.js的NPM模块,可用于更快的Web开发. 浏览器同步可在许多设备之间同步文件更改和交互. 最重要的功能是实时重新加载. 我们 ...

  7. Java / Web项目中的NPM模块Browser-Sync

    Browser-Sync是一个方便的基于Node.js的NPM模块,可用于更快的Web开发. 浏览器同步可在许多设备之间同步文件更改和交互. 最重要的功能是实时重新加载. 我们也可以在Java / W ...

  8. 在Maven+Spring项目中使用Node.js的Gulp进行前端自动化构建

    摘要: 在Maven+Spring项目中使用Node.js的Gulp进行前端自动化构建 刚开始打算进行前后端分离开发,后来发现在使用JSP或者Freemarker做动态页面时,想发挥这些自动化构建工具 ...

  9. gulp自己主动化任务脚本在HybridApp开发中的使用

    眼下做前端开发的同学可能都熟悉grunt.fis之类的自己主动化构建工具.事实上在HybridApp开发中我们也能够使用这些工具来简化我们的工作.gulp就是一个比grunt,fis都先进的构建工具. ...

最新文章

  1. tidb mysql hbase_HBase/TiDB都在用的数据结构:LSM Tree,不得了解一下?
  2. 生成对抗网络(GAN)应用于图像分类
  3. 多线程编程实践——实现生产者、消费者模型
  4. kylin 部分问题
  5. Spring、Spring MVC、Struts2、、优缺点整理
  6. 漫画兔善搞2007-等待爱玛马士基号的垃圾
  7. LimeSurvey问卷调查管理系统
  8. java 调用window程序_Windows下Java调用可执行文件代码实例
  9. (01)数据库及相关
  10. 》》css3--动画
  11. 利用PPT表格对图片进行矩形分割
  12. 乔布斯自传预售即夺下销售冠军
  13. 关于iOS7越狱的整理
  14. AppleScript+JavaScript自动认证校园网
  15. Python分析捕食者和被捕食者模型 Lotka--Volterra方程 | 拟合求解a,b,c,d
  16. 【机器学习-分类】决策树预测
  17. 基础命令和脚本练习初识
  18. 2022东南大学网安916考研经验贴
  19. 一条命令搞定黑苹果双系统时差
  20. Nginx反向代理+PHP服务器搭建

热门文章

  1. java数据库视图工具_数据库视图工具类
  2. 网络推广是什么告诉大家如何高效提高网站权重?
  3. 万词霸屏的本质是什么?
  4. 网络营销外包——网络营销外包专员如何做好网站搜索引擎优化
  5. 如何从SEO优化角度设计网站导航栏?
  6. python 作用域 前缀_TENSORFLOW变量作用域(VARIABLE SCOPE)
  7. springboot 自动装配_Spring Boot 自动装配流程
  8. Linux下给arm的引脚电平,ARM-Linux GPIO操作事宜
  9. python数据分析年薪百万_如何成为一个年薪 50 万以上的数据分析师?
  10. Linux上的free命令详解