Выполнение команд gulp одна за другой приводит к другому результату, чем их запуск в gulp.series. Зачем? - PullRequest
0 голосов
/ 08 мая 2020

Ниже мой файл gulpfile. Я пытаюсь сгенерировать уменьшенный css из s css, а затем переименовать его с помощью gulp-rev. Запуск gulp clean: assets, затем gulp s css, затем gulp css работает отлично. Но запуск gulp build не решает этой задачи. Уменьшенный css сохраняется в ./assets/css, но переименованный css не сохраняется в ./public/assets

const gulp = require('gulp');
//gulp sass converts sass to css
const sass = require('gulp-sass');
//cssnano converts css to minified form
const cssnano = require('gulp-cssnano');
//rev renames the assets by appending content hash to filenames so that the browser treats it as a new asset if content is changed
const rev = require('gulp-rev');
const path = require('path');
const del = require('del');

gulp.task('clean:assets', function(done){
    del.sync('./public/assets');
    del.sync('./assets/css');
    done();
});

gulp.task('scss', function(done){
    gulp.src('./assets/scss/**/*.scss')
    .pipe(sass())
    .pipe(cssnano())
    .pipe(gulp.dest('./assets/css'))
    done();
});

gulp.task('css', function(done){
    gulp.src('./assets/css/**/*.css', {base: path.join(process.cwd(), 'assets')})
    .pipe(rev())
    .pipe(gulp.dest('./public/assets/'))
    .pipe(rev.manifest('public/assets/rev-manifest.json',{
        base: process.cwd()+'./public/assets',
        merge: true
    }))
    .pipe(gulp.dest('./public/assets'));
    done();
});

gulp.task('build', gulp.series('clean:assets', 'scss', 'css'), function(done){
    done(); 
})

1 Ответ

0 голосов
/ 09 мая 2020
gulp.task('scss', ()=> {
    return new Promise((resolve, reject) => {
        return gulp.src('./assets/scss/**/*.scss')
            .pipe(sass())
            .pipe(cssnano())
            .pipe(gulp.dest('./assets/css'))
            .on('end', resolve)
            .on('error', reject);
    });
});

Изменил задачу s css на выше, чтобы заставить ее работать. См. { ссылка }

...