【问题标题】:Gulp-sass and browser-sync don't reload browserGulp-sass 和 browser-sync 不会重新加载浏览器
【发布时间】:2015-11-08 03:26:18
【问题描述】:

当我更改一些 scss 文件时,一切似乎都可以正常工作(scss 被编译为 css 文件并监视源文件):

[21:19:46] Starting 'sass'...
[BS] 1 file changed (principal.css)
[21:19:46] Finished 'sass' after 18 ms

但我需要手动重新加载浏览器以反映更改。这是我的 gulpfile:

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

// Static Server + watching scss/html files
gulp.task('default', ['sass'], function() {

    browserSync.init({
        proxy: "huertajalon/"
    });

    gulp.watch("./sass/**/*.scss", ['sass']);
    gulp.watch("./*.php").on('change', browserSync.reload);
    gulp.watch("./style.css").on('change', browserSync.reload);

});

// Compile sass into CSS & auto-inject into browsers
gulp.task('sass', function() {
    return gulp.src("sass/principal.scss")
        .pipe(sass())
        .pipe(gulp.dest("./css"))
        .pipe(browserSync.stream());
});

在其他情况下(例如,当我修改并保存 style.css 时)浏览器会很好地重新加载。

我做错了什么?谢谢!

【问题讨论】:

    标签: gulp browser-sync gulp-sass


    【解决方案1】:

    试试这样的。

    gulp.task(default, ['sass'], browserSync.reload);
    

    另请参阅http://www.browsersync.io/docs/gulp/#gulp-reload

    【讨论】:

    • 有效!非常感谢。我会把我的 gulpfile 放在这里(如果我学会了如何在 cmets 中格式化文本;)
    • 出于文档目的,我将工作 gulpfile 放在这里:pastebin.com/yLLKLKut
    【解决方案2】:

    您是否使用浏览器同步版本 2.6.0 或更高版本,因为这是使用 browserSync.stream() 所必需的。 http://www.browsersync.io/docs/api/#api-stream

    如果没有,那么您应该更新,或者您可以尝试browserSync.reload({stream: true}),这是以前使用浏览器同步处理流的方法。如果我没记错的话。

    【讨论】:

    • $ gulp -v:CLI 版本 3.9.0。本地版本 3.9.0
    • 您的 gulp 版本是 3.9.0,但您的浏览器同步版本是多少?使用npm list --depth=0 查看依赖的版本
    • 当然,抱歉。这是:浏览器同步@2.8.2。这个问题是通过其他方式解决的。还是谢谢你。
    猜你喜欢
    • 1970-01-01
    • 2016-07-06
    • 1970-01-01
    • 2015-09-01
    • 2016-05-25
    • 2017-05-15
    • 2017-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多