Gulp任务未运行-改为其他任务的回调
我有一个任务是这样的:Gulp任务未运行-改为其他任务的回调,gulp,Gulp,我有一个任务是这样的: var gulp = require('gulp'); gulp.task('doStuff', ['a', 'b', 'c'], function () { console.log("success"); }); 我已经读过,从我的理解来看,这是应该发生的事情: gulp创建一个名为doStuff的任务 gulp异步运行任务a、b和c 在上述三个任务全部完成后,gulp运行我为doStuff定义的函数 这就是实际发生的情况: gulp创建一个名为doSt
var gulp = require('gulp');
gulp.task('doStuff', ['a', 'b', 'c'], function () {
console.log("success");
});
我已经读过,从我的理解来看,这是应该发生的事情:
- gulp创建一个名为doStuff的任务李>
- gulp异步运行任务a、b和c李>
- 在上述三个任务全部完成后,gulp运行我为doStuff定义的函数
- gulp创建一个名为doStuff的任务李>
- gulp异步运行任务a、b和c李>
- gulp表示它已成功运行doStuff任务,但没有运行我作为gulp.task方法的第三个参数传递的函数
var gulp = require('gulp');
gulp.task('a', function (callback) {
callback();
});
这将运行我的代码
我希望我的函数只执行一次,并且只能在所有其他任务运行之后执行。我遗漏了什么,或者误解了什么?我能做什么
顺便说一句,这可能是相关的:我的大多数其他任务都会生成文件,它们会返回这样的文件。比如:
var gulp = require('gulp');
var rename = require('gulp-rename');
var someLogic = require('someLogicIImplementedSomewhereElse');
var path = "../../somepath";
gulp.task('foo', function() {
return gulp.src(path)
.pipe(someLogic())
.pipe(rename("renamed.js"))
.pipe(gulp.dest(path));
});
确保a、b和c返回某个内容或执行回调 请尝试以下示例:
gulp.task('a', function (done) {
done();
});
gulp.task('b', function (done) {
return gulp.src('.');
});
gulp.task('c', function (done) {
done();
});
gulp.task('stuff', ['a', 'b', 'c'], function () {
console.log("success");
});
这是吞下东西的输出
- Starting 'a'...
- Finished 'a' after 48 μs
- Starting 'b'...
- Starting 'c'...
- Finished 'c' after 6.03 μs
- Finished 'b' after 9.14 ms
- Starting 'stuff'...
- success
- Finished 'stuff' after 38 μs
a
、b
和c
看起来像什么?他们回来了吗?@Davidtroon他们回来了。我已经编辑了我的问题,添加了一个示例。我有一个新手问题,如何通过cli传递“done”函数?这就像承诺链一样吗?看起来是这样的,那么。