如何修复Gulp任务-CSS任务不间断工作?

时间:2019-08-05 07:08:05

标签: javascript gulp gulp-watch gulp-sass

我正在开始一个新的项目。存在浏览器同步,当我运行gulpgulp watch时,更改scss / css文件中的内容会不停地运行css任务,即使我不使用css进行某些操作也已开始并完成了马不停蹄。如果我尝试更改js中的内容,它还会添加此任务,并且不间断地运行这两个任务...

var themename = 'humescores';

var gulp = require('gulp'),
    // Prepare and optimize code etc
    autoprefixer = require('autoprefixer'),
    browserSync = require('browser-sync').create(),
    image = require('gulp-image'),
    jshint = require('gulp-jshint'),
    postcss = require('gulp-postcss'),
    sass = require('gulp-sass'),
    sourcemaps = require('gulp-sourcemaps'),

    // Only work with new or updated files
    newer = require('gulp-newer'),

    // Name of working theme folder
    root = '../' + themename + '/',
    scss = root + 'sass/',
    js = root + 'js/',
    img = root + 'images/',
    languages = root + 'languages/';


// CSS via Sass and Autoprefixer
gulp.task('css', function() {
    return gulp.src(scss + '{style.scss,rtl.scss}')
    .pipe(sourcemaps.init())
    .pipe(sass({
        outputStyle: 'expanded', 
        indentType: 'tab',
        indentWidth: '1'
    }).on('error', sass.logError))
    .pipe(postcss([
        autoprefixer('last 2 versions', '> 1%')
    ]))
    .pipe(sourcemaps.write(scss + 'maps'))
    .pipe(gulp.dest(root));
});

// Optimize images through gulp-image
gulp.task('images', function() {
    return gulp.src(img + 'RAW/**/*.{jpg,JPG,png}')
    .pipe(newer(img))
    .pipe(image())
    .pipe(gulp.dest(img));
});

// JavaScript
gulp.task('javascript', function() {
    return gulp.src([js + '*.js'])
    .pipe(jshint())
    .pipe(jshint.reporter('default'))
    .pipe(gulp.dest(js));
});


// Watch everything
gulp.task('watch', function() {
    browserSync.init({ 
        open: 'external',
        proxy: 'localhost-site.com',
        port: 8080
    });
    gulp.watch([root + '**/*.css', root + '**/*.scss' ], gulp.series('css'));
    gulp.watch(js + '**/*.js', gulp.parallel('javascript'));
    gulp.watch(img + 'RAW/**/*.{jpg,JPG,png}', gulp.parallel('images'));
    gulp.watch(root + '**/*').on('change', browserSync.reload);
});


// Default task (runs at initiation: gulp --verbose)
gulp.task('default', gulp.parallel('watch'));

enter image description here

1 个答案:

答案 0 :(得分:0)

您使用一个src目录来监视文件,并使用一个dist(或您所谓的目录)文件夹来放置生成的文件。

或者,例如,您可以在/css/styles.css中生成文件,然后将所有scss文件放入css/scss/....中,而仅查看css/scss文件夹。