【问题标题】:Browser sync not working with gulp when SASS updated更新 SASS 时浏览器同步无法与 gulp 一起使用
【发布时间】:2016-08-23 10:27:14
【问题描述】:

我有一个运行浏览器同步和 js/sass 编译的 gulpfile。它为我的 Angular SPA 服务。它看起来像这样:

gulp.task('default', function(){
  return runSequence(['build-css', 'build-js'], 'serve-dev');
});

gulp.task('serve-dev', function() {

  browserSync.init(null, {
    server: {
      baseDir: './',
      middleware: [
        modRewrite([
          '!\\.\\w+$ /index.html [L]'
        ])
      ]
    }
  });

  gulp.watch(paths.js.dir + '/**/*.js', ['watch-js']);
  gulp.watch(paths.css.dir + '/**/*.scss', ['watch-css']);
  gulp.watch(paths.html.dir + '/**/*.html').on('change', browserSync.reload);

});

gulp.task('watch-css', ['build-css'], browserSync.reload);
gulp.task('watch-js', ['build-js'], browserSync.reload);

gulp.task('build-css', function() {
  return gulp.src(paths.css.src)
    .pipe(sourcemaps.init())
    .pipe(sass().on('error', sass.logError))
    .pipe(autoprefixer({
      browsers: ['> 0.5%']
    }))
    .pipe(cleanCSS())
    .pipe(rename('app.min.css'))
    .pipe(sourcemaps.write('./'))
    .pipe(gulp.dest(paths.css.dest));
});

gulp.task('build-js', function() {
  return gulp.src(paths.js.src)
    .pipe(sourcemaps.init())
    .pipe(concat('app.min.js'))
    .pipe(ngAnnotate())
    .pipe(uglify())
    .pipe(sourcemaps.write('./'))
    .pipe(gulp.dest(paths.js.dest));
});

它最初用于为网站提供服务,当我更新 html 文件时它会刷新,但是当我更新 SASS 文件时它不会刷新。所有路径都绝对正确,因为初始编译工作正常。

【问题讨论】:

    标签: javascript angularjs sass gulp browser-sync


    【解决方案1】:

    添加

    .pipe(browserSync.stream())

    在“build-css”任务结束时。它对我有用

    【讨论】:

    • 我不能搞乱构建任务。也有为生产运行的构建任务,我无法在生产构建中使用浏览器同步。
    • 然后创建该任务的开发版本?
    • 是的,在这种情况下,您需要为开发版本创建一个单独的任务。
    猜你喜欢
    • 2014-09-28
    • 1970-01-01
    • 2019-12-13
    • 2015-01-28
    • 1970-01-01
    • 1970-01-01
    • 2017-11-08
    • 2015-09-18
    • 2015-09-11
    相关资源
    最近更新 更多