gulp-connect 浏览器自动刷新

Livereload 可以理解为即时刷新,在前端开发中,开发者在编写或调试 html/js/css 代码后需要从编辑器切换到浏览器,再刷新浏览器才能看到页面变化,这种频繁的操作在一定程度上影响了工作效率,而 liveReload 可以帮助我们解决了这个问题。
实现原理: 通过在本地开启一个 websocket 服务,检测文件变化,当文件修改后触发 livereload 任务,推送消息给浏览器刷新页面。

第一步:全局安装 gulp 和 当前目录部署 gulp 和 gulp-connect 插件

npm install -g gulp

npm install --save-dev gulp gulp-connect

第二步:安装 chrome 插件,点我去安装

第三步:新建文件 gulpfile.js 配置代码:

// 定义依赖和插件



var gulp = require('gulp'),
    connect = require('gulp-connect'); //livereload


// 需要检测的文件路径
var htmlSrc = '../protected/modules/prepay/views/**/*.php',
    jsSrc = '../static/prepay/js/*.js',
    cssSrc = '../static/prepay/style/*.css';

// 默认任务
gulp.task('default', [ 'css', 'js', 'html','watch', 'connect']);

//定义livereload任务
gulp.task('connect', function() {
    connect.server({
        livereload: true
    });
});

//定义html任务
gulp.task('html', function(){
    gulp.src(htmlSrc)
        .pipe(connect.reload());
});
//定义js任务
gulp.task('js', function(){
    gulp.src(jsSrc)
        .pipe(connect.reload());
});
//定义css任务
gulp.task('css', function(){
    gulp.src(cssSrc)
        .pipe(connect.reload());
});

/* 这里的watch,是自定义的,写成live或者别的都行 */
gulp.task('watch', function() {

    gulp.watch(htmlSrc, ['html']);
    gulp.watch(jsSrc, ['js']);
    gulp.watch(cssSrc, ['css']);

});

展示一下配置后的效果:

  1. gulp启动任务后,可以看到终端显示在8080端口开启了一个http服务,而在35729端口开启了LiveReload服务,实际为一个WebSocket服务。


    clipboard.png
  2. 打开页面,可以看到原始页面中插入了livereload的js文件。

clipboard1.png
  1. 在network中WS下可以看到WebSocket的消息。
clipboard2.png
  1. 当编辑代码发生变化时(Ctrl+S保存后),浏览器会收到消息,触发F5刷新页面的操作。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在现在的前端开发中,前后端分离、模块化开发、版本控制、文件合并与压缩、mock数据等等一些原本后端的思想开始...
    Charlot阅读 5,484评论 1 32
  • 前言 本文默认你已经安装好node环境,并且熟悉node命令,和window cd命令。 gulp简介 基于nod...
    9I阅读 1,992评论 4 50
  • 对网站资源进行优化,并使用不同浏览器测试并不是网站设计过程中最有意思的部分,但是这个过程中的很多重复的任务能够使用...
    懵逼js阅读 1,087评论 0 8
  • gulpjs是一个前端构建工具,与gruntjs相比,gulpjs无需写一大堆繁杂的配置参数,API也非常简单,学...
    依依玖玥阅读 3,185评论 7 55
  • 最近在研究gulp,npm里的文档有些过于简洁,并看不出来到底每一步操作是为什么,api到底是做什么用。于是各种查...
    SuperSnail阅读 5,941评论 5 20