javascript 在 Gulp 中运行完所有任务后,如何删除文件夹及其内容?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/28648312/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-28 09:19:13  来源:igfitidea点击:

How can you delete a folder and its contents after all tasks have been run in Gulp?

javascriptnode.jsgulpdelete-directory

提问by ATLChris

Here is what I have now, but it is not working. The css folder is not being cleaned out, but no errors are being thrown.

这是我现在所拥有的,但它不起作用。css 文件夹没有被清除,但没有抛出任何错误。

var gulp = require('gulp');
var sass = require('gulp-sass');
var autoprefixer = require('gulp-autoprefixer');
var concat = require('gulp-concat');
var minifyCSS = require('gulp-minify-css');
var del = require('del');

gulp.task('default', ['compile-sass', 'process-css', 'clean-css']);

gulp.task('compile-sass', function () {
    gulp.src('resources/assets/sass/main.scss')

        // Compile Sass
        .pipe(sass({
            includePaths: ['resources/assets/bower/foundation/scss/foundation/components/']
        }))

        // Autoprefix CSS
        .pipe(autoprefixer({
            browsers: ['last 2 versions'],
            cascade: false
        }))

        // Move to Temp Destination
        .pipe(gulp.dest('resources/assets/css'));

});

gulp.task('process-css', ['compile-sass'], function () {
    gulp.src(['resources/assets/css/main.css', 'bower/slick/slick/slick.css'])

        // Concat CSS Files
        .pipe(concat('all.min.css'))

        // Minify CSS
        .pipe(minifyCSS())

        // Move to Final Destination
        .pipe(gulp.dest('public/assets/css/'));

});

gulp.task('clean-css', ['process-css'], function () {

    // Delete Temp Files & Folders
    del(['resources/assets/css/']);

});

回答by ATLChris

I figured it out. I had to return the stream's from the prior tasks to confirm they were completed.

我想到了。我必须从先前的任务中返回流以确认它们已完成。

var gulp = require('gulp');
var sass = require('gulp-sass');
var autoprefixer = require('gulp-autoprefixer');
var concat = require('gulp-concat');
var minifyCSS = require('gulp-minify-css');
var del = require('del');

gulp.task('default', ['compile-sass', 'process-css', 'clean-css']);

gulp.task('compile-sass', function () {
    var stream = gulp.src('resources/assets/sass/main.scss')

        // Compile Sass
        .pipe(sass({
            includePaths: ['resources/assets/bower/foundation/scss/foundation/components/']
        }))

        // Autoprefix CSS
        .pipe(autoprefixer({
            browsers: ['last 2 versions'],
            cascade: false
        }))

        // Move to Temp Destination
        .pipe(gulp.dest('resources/assets/css'));

    return stream;

});

gulp.task('process-css', ['compile-sass'], function () {
    var stream = gulp.src(['resources/assets/css/main.css', 'bower/slick/slick/slick.css'])

        // Concat CSS Files
        .pipe(concat('all.min.css'))

        // Minify CSS
        .pipe(minifyCSS())

        // Move to Final Destination
        .pipe(gulp.dest('public/assets/css/'));

    return stream;

});

gulp.task('clean-css', ['process-css'], function () {

    // Delete Temp Files & Folders
    del(['resources/assets/css/']);

});