[gulp入门]gulp-connect浏览器自动刷新
LiveReload可以理解为即时刷新,在前端开发中,开发者在编写或调试html/js/css代码后需要从编辑器切换到浏览器,再刷新浏览器才能看到页面变化,这种频繁的操作在一定程度上影响了工作效率,而LiveReload可以帮助我们解决了这个问题。
实现原理:通过在本地开启一个websocket服务,检测文件变化,当文件被修改后触发livereload任务,推送消息给浏览器刷新页面。
安装gulp-connect插件
npm install gulp-connect
配置代码🌰:
1 //定义依赖和插件
2 var gulp = require('gulp'),
3 uglify = require('gulp-uglify'),
4 concat = require('gulp-concat'),
5 rename = require('gulp-rename'),
6 connect = require('gulp-connect');//livereload
7
8 var jsSrc = 'src/js/*.js';
9 var jsDist = 'dist/js';
10
11 var htmlSrc = 'src/*.html';
12 var htmlDist = 'dist';
13
14 //定义名为js的任务
15 gulp.task('js', function () {
16
17 gulp.src(jsSrc)
18 .pipe(concat('main.js'))
19 .pipe(gulp.dest(jsDist))
20 .pipe(rename({suffix: '.min'}))
21 .pipe(uglify())
22 .pipe(gulp.dest(jsDist))
23 .pipe(connect.reload())
24
25 });
26
27 //定义html任务
28 gulp.task('html', function () {
29
30 gulp.src(htmlSrc)
31 .pipe(gulp.dest(htmlDist))
32 .pipe(connect.reload());
33
34 });
35
36 //定义livereload任务
37 gulp.task('connect', function () {
38 connect.server({
39 livereload: true
40 });
41 });
42
43
44 //定义看守任务
45 gulp.task('watch', function () {
46
47 gulp.watch('src/*.html', ['html']);
48
49 gulp.watch('src/js/*.js', ['js']);
50
51 });
52
53
54 //定义默认任务
55 gulp.task('default', [ 'js', 'html','watch', 'connect']);
展示一下配置后的效果:
1.gulp启动任务后,可以看到终端显示在8080端口开启了一个http服务,而在35729端口开启了LiveReload服务,实际为一个WebSocket服务。

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

3.在network中WS下可以看到WebSocket的消息。

4.当编辑代码发生变化时(Ctrl+S保存后),浏览器会收到消息,触发F5刷新页面的操作。



浙公网安备 33010602011771号