Задача Gulp CSS не перезаписывает существующий CSS

var paths = {
 css: './public/apps/user/**/*.css'
}

var dest = {
 css: './public/apps/user/css/'
}

// Сократить и объединить все CSS-файлы

gulp.task('css', function(){
 return gulp.src(paths.css)
  .pipe(concatCSS('style.css'))
  .pipe(minifyCSS({keepSpecialComments: 1}))
  .pipe(rename({
        suffix: '.min'
    }))
  .pipe(gulp.dest(dest.css))
});

Когда я запускаю задачу в первый раз, она хорошо компилируется и все изменения есть. После того как я что-то изменил и запустил снова, он не перезаписывает существующий уменьшенный файл CSS. Если бы я должен был удалить минимизированный CSS и запустить задачу снова, все работает отлично. Есть идеи?

2 ответа

Вы должны удалить свою уменьшенную версию CSS, прежде чем выполнять минификацию CSS.

Для достижения этого вы можете использовать gulp-clean

установить gulp-clean как npm установить gulp-clean

var gulp = require('gulp'),
    concat = require('gulp-concat'),
    cleanCSS = require('gulp-clean-css'), // this is to minify css
    clean = require('gulp-clean'), //this is to delete files
gulp.task('del-custom-css', function(){
  return gulp.src('./static/custom/css/custom.min.css',{force: true})
  .pipe(clean())
});
gulp.task('minify-custom-css', ['del-custom-css'], function(){
  return gulp.src(['./static/custom/css/*.css'])
  .pipe(concat('custom.min.css'))
  .pipe(cleanCSS())
  .pipe(gulp.dest('./static/custom/css'))
});

Надеюсь, поможет.

Попробуйте установить точный путь, а не переменную. Не то чтобы это не очень хорошая практика, просто попробуйте без этого.

Также добавьте 'use strict'; к вашей задаче, чтобы вы могли быть уверены, что в ваших настройках нет серьезных ошибок. Это даст вам правильный тип ошибок, если они есть.

И могу я спросить, почему вы объединяете свой CSS перед сборкой?

Каждая конкатенация файлов, минификация и т. Д. Должна выполняться в 'build' задача.

Другие вопросы по тегам