javascript - Gulp 回调 - 如何告诉 Gulp 先运行一个任务再运行另一个任务?

标签 javascript css asynchronous less gulp

我如何告诉 Gulp 先运行一个任务再运行另一个任务?

例如,我需要先将 .less 文件压缩成 .css,

// Crunch less into css.
gulp.task('less', function () {

    return gulp.src([
        'css/myless.less'
    ])
    .pipe(less().on('error', function (err) {
        console.log(err);
    }))
    .pipe(cssmin().on('error', function(err) {
        console.log(err);
    }))
    .pipe(rename({suffix: '.less'}))
    .pipe(gulp.dest('css/'));

});

然后将其与其他普通的 .css 文件合并,

var concat = require('gulp-concat'),
    minifyCSS = require('gulp-minify-css'),
    clean = require('gulp-clean');

// CSS concat, auto-prefix and minify
gulp.task('styles', function() {
  gulp.src([
        'css/myless.less.css',
        'css/normal.css'
    ])
    .pipe(concat('main.css'))
    .pipe(minifyCSS())
    .pipe(gulp.dest('css/'));
});

运行任务,

gulp.task('default', ['less', 'styles'], function() {

})

它只优化'css/normal.css',但不优化'css/myless.less.css'。

我该怎么办?

最佳答案

您的 styles 任务应该依赖于 less 任务来等待其完成。执行您所做的操作将并行运行这两个任务。

您可以为您的gulpfile 的每个任务指定一组依赖任务:

gulp.task('styles', ['less'], function () {

那么您的默认任务应该如下所示:

gulp.task('default', ['styles']);

关于javascript - Gulp 回调 - 如何告诉 Gulp 先运行一个任务再运行另一个任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26715230/

相关文章:

javascript - 将 "this"传递给在类中实例化的类

javascript - 使用 Jquery 的部分 View 渲染顺序

javascript - ionic angular app异步函数中 "this"的范围

javascript - 像推特和 Facebook 一样实现了帖子的下拉菜单

javascript - reducer 更新了错误的值(数组更新了一个项目,里面只有很少的项目,而不是分散它们)

css - 顶部导航栏阻止页面的顶部内容

css - 如何更改 :focus? 上输入/文本区域的边框颜色

python-3.x - 与另一个线程或进程共享 asyncio.Queue

c# - 将套接字事件包装为异步

javascript - 点击 HTML/jQuery 显示/隐藏 ul ul