【问题标题】:How I can combine two tasks in one如何将两个任务合二为一
【发布时间】:2018-04-03 04:37:08
【问题描述】:

我有第一个任务:

gulp.task( 'sass', function() {
    gulp.src('src/sass/**/*.+(sass|scss)')
        .pipe( sass({
                outputStyle:'expanded'
            }).on( 'error', notify.onError(
            {
                message: "<%= error.message %>",
                title  : "Sass mistake!"
            } ) )
        )
        .pipe(gulp.dest('src/css'));
});

第二个:

gulp.task('optimize:css', ['sass'], function () {
    setTimeout(function () {
        gulp.src('src/css/styles.css')
            .pipe(
                postcss([
                    autoprefix({
                        browsers:['>2%']
                   }),
                   stylelint(config),
                   stylefmt(config)
                ])
            )
            .pipe(gulp.dest('dev/assets/css'))
            .pipe(cssmin())
            .pipe(rename({suffix: '.min'}))
            .pipe(gulp.dest('dev/assets/css'));
    },1000)
});

在第二个任务中,我使用 setTimeout,因为如果我在没有它的情况下运行 optimize:css - 任务将异步工作,并且 'optimize:css' 中的操作不会让我得到正确的结果

有没有办法使用一个任务而不是两个任务,而不会超时,我会得到相同的结果。

【问题讨论】:

    标签: npm sass gulp postcss


    【解决方案1】:

    您可以在Gulp documentation 中找到任务依赖定义的示例。

    在你的情况下,它看起来像这样:

    // Notice "cb" argument here
    gulp.task('sass', function (cb) {
        gulp.src('src/sass/**/*.+(sass|scss)')
            .pipe(sass({
                    outputStyle: 'expanded'
                }).on('error', notify.onError(
                {
                    message: "<%= error.message %>",
                    title: "Sass mistake!"
                }))
            )
            .pipe(gulp.dest('src/css'))
            // And a fact that it is called at the end of the task
            .on('end', cb);
    });
    
    gulp.task('optimize:css', ['sass'], function () {
        gulp.src('src/css/styles.css')
            .pipe(
                postcss([
                    autoprefix({
                        browsers: ['>2%']
                    }),
                    stylelint(config),
                    stylefmt(config)
                ])
            )
            .pipe(gulp.dest('dev/assets/css'))
            .pipe(cssmin())
            .pipe(rename({suffix: '.min'}))
            .pipe(gulp.dest('dev/assets/css'));
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-13
      • 2014-08-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多