Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Gulp回调-如何告诉Gulp先运行一个任务,然后再运行另一个任务?_Javascript_Css_Asynchronous_Less_Gulp - Fatal编程技术网

Javascript Gulp回调-如何告诉Gulp先运行一个任务,然后再运行另一个任务?

Javascript Gulp回调-如何告诉Gulp先运行一个任务,然后再运行另一个任务?,javascript,css,asynchronous,less,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); }))

我如何告诉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”结合起来


我该怎么办?

您的
样式
任务应该取决于
less
任务是否需要等待其完成。执行您所做的操作将并行运行这两个任务

您可以为gulpfile的每个任务指定一个相关任务数组:

然后您的
默认任务应该如下所示:

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

非常感谢您的回答。是否如Pylinux所建议的那样,还需要一个
返回
语句?我看到
style
依赖于
less
less
有一个
返回值。我想知道这是必要的还是无聊的。@mareoraft the
return
告诉gulp您的任务是异步运行的,它将等待完成。由于
less
任务正在返回其流,因此
style
任务将正确地等待它完成,并且由于没有人依赖
style
任务,因此可以忽略返回。仅供参考:如果在
gulp.src之前不添加
return
gulp不知道您的任务何时完成,将立即开始下一个任务!(您的“样式”任务中缺少它)
gulp.task('default', ['styles']);