[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刷新頁面的操作。

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM