Javascript Gulp回调-如何告诉Gulp先运行一个任务,然后再运行另一个任务?
我如何告诉Gulp先运行一个任务,然后再运行另一个任务 例如,我需要先将.less文件压缩成.css文件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); }))
// 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 thereturn
告诉gulp您的任务是异步运行的,它将等待完成。由于less
任务正在返回其流,因此style
任务将正确地等待它完成,并且由于没有人依赖style
任务,因此可以忽略返回。仅供参考:如果在gulp.src之前不添加return
(
gulp不知道您的任务何时完成,将立即开始下一个任务!(您的“样式”任务中缺少它)
gulp.task('default', ['styles']);