browserSync.reload 和 browserSync.stream()) - 有啥区别?

Posted

技术标签:

【中文标题】browserSync.reload 和 browserSync.stream()) - 有啥区别?【英文标题】:browserSync.reload and browserSync.stream()) - what are the difference?browserSync.reload 和 browserSync.stream()) - 有什么区别? 【发布时间】:2018-02-16 17:30:59 【问题描述】:

我有这个 gulpfile.js 文件:

var gulp = require('gulp'),
sass = require('gulp-sass'),
uglify = require('gulp-uglify'),
concat = require('gulp-concat'),
browserSync = require('browser-sync').create();

gulp.task('sass', function() 
    gulp.src('assets/src/sass/*.scss')
    .pipe(sass())
    .pipe(gulp.dest('assets/dist/css'))
    .pipe(browserSync.stream());
);

gulp.task('scripts', function() 
    gulp.src('assets/src/js/*.js')
    .pipe(concat('main.js'))
    .pipe(uglify())
    .pipe(gulp.dest('assets/dist/js'));
); 

gulp.task('server', ['sass','scripts'], function() 
    browserSync.init(
        proxy: 'http://localhost/example/',
    );
    gulp.watch('assets/src/sass/*.scss', ['sass']);
    gulp.watch('assets/src/js/*.js', ['scripts']);
    gulp.watch('./**/*.php').on('change', browserSync.reload);
);

gulp.task('server', ['run']);

请告诉我有什么区别:

.pipe(browserSync.stream());

和:

gulp.watch('./**/*.php').on('change', browserSync.reload);

两个都需要?他们有不同的作用?

谢谢。

【问题讨论】:

【参考方案1】:

到目前为止,您可能已经得到了答案,但我会在此处留下答案,以防万一有人需要知道。

browserSync.reload

用于进行页面刷新。理想情况下,它用于 html 和 JS 文件。

browserSync.stream

用于在不刷新页面的情况下注入更改。理想情况下,这用于 CSS 和其他样式表格式。此命令很有用,因为它可以保持滚动位置不变,并且不会像页面刷新通常那样将您带到页面顶部。

【讨论】:

来自文档,“reload 方法将通知所有浏览器有关更改的文件,并且会导致浏览器刷新或在可能的情况下注入文件。”因此,主要区别在于重新加载刷新浏览器而流注入更改是不正确的。

以上是关于browserSync.reload 和 browserSync.stream()) - 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

gulp使用详情 及 3.0到4.0的坑

gulp实时刷新页面

js篇

wso2 - 问题commad合并API_REQ_USER_BROW_SUMMARY

java服务器端,通过HttpServletRequest可以获取手机浏览器端的imsi吗?

仅数据列表验证选项[重复]