简体   繁体   English

使用gulp-watch和gulp-server-livereload在gulpfile.js中没有更新样式

[英]Styles are not being updated in gulpfile.js using gulp-watch and gulp-server-livereload

If I make a change to my style sheet then the styles will be re-loaded but only once. 如果我对样式表进行了更改,那么样式将重新加载但只会重新加载一次。 I need the styles to reload after all changes. 我需要在所有更改后重新加载样式。

I am new to using task managers so any help would be greatly appreciated. 我是新手使用任务管理器,所以任何帮助将不胜感激。

gulpfile.js gulpfile.js

var gulp = require('gulp'),
concat = require('gulp-concat'),
uglify = require('gulp-uglify'),
rename = require('gulp-rename'),
sass = require('gulp-ruby-sass'),
server = require('gulp-server-livereload'),
bower_files = require('bower-files')(),
inject = require('gulp-inject'),
del = require('del'),
watch = require('gulp-watch'),
batch = require('gulp-batch'),
jasmine = require('gulp-jasmine'),
karma = require('karma').server,
src = 'app/',
dest = 'dist/',
cssDestFolder = src,
cssStyle = 'compressed',
serverSrc = dest;

 /**
  * Set distribution environment
  */
  gulp.task('set-env-dist', function () {
    cssDestFolder = dest;
    cssStyle = 'compressed';
    serverSrc = dest;
});

/**
 * Set development environment
 */
 gulp.task('set-env-dev', function () {
   cssDestFolder = src;
   cssStyle = 'expanded';
   serverSrc = src;
});

/**
 * Run test once and exit
 */
 gulp.task('test', function (done) {
    karma.start({
      configFile: __dirname + '/karma.conf.js',
      singleRun: true
   }, done);
 });

 /**
  * Concatenate and compress bower
  */
  gulp.task('bower', function () {
    gulp.src(bower_files.ext('js').files)
    .pipe(concat('bower.min.js'))
    .pipe(uglify())
    .pipe(gulp.dest(dest));
  });

 /**
  * Run server
  */
  gulp.task('webServer', function () {
    gulp.src(serverSrc)
     .pipe(server({
        livereload: true,
        log: 'debug',
        open: true
      }));
   });

  /**
   * Compress sass
   */
   gulp.task('styles', function () {
     console.log('in styles')
     return sass(src + 'app.scss', {style: cssStyle})
      .pipe(gulp.dest(cssDestFolder));
   });

  /**
   * Concatenate and compress js
   */
   gulp.task('scripts', function () {
     return gulp.src([
       src + 'app.js',
       src + 'components/**/*.js',
       src + '**/*.js',
       '!' + src + 'bower_components/**/*.js',
       '!' + src + 'components/**/*.spec.js',
       '!' + src + '**/*.spec.js'
     ])
    .pipe(concat('main.js'))
    .pipe(rename({suffix: '.min'}))
    .pipe(uglify())
    .pipe(gulp.dest(dest));
   });

  gulp.task('watch', function () {
    watch([
      'app/**/*.scss',
      'app/app.scss'
     ], batch(function () {
     gulp.start('styles');
   }));
  });

  gulp.task('build-dist', ['set-env-dist', 'scripts', 'styles', 'bower']);
  gulp.task('serve-dist', ['set-env-dist', 'webServer', 'watch']);
  gulp.task('serve', ['set-env-dev', 'sass', 'webServer']);

I've never used gulp-batch , but you are only running one gulp task in your watch . 我从未使用过gulp-batch ,但你只是在watch运行一个gulp任务。 Try this, 尝试这个,

gulp.task('watch', function () {
    watch([
      'app/**/*.scss',
      'app/app.scss'
    ], ['styles']);
  });

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM