gulp.run()已被弃用

时间:2014-12-08 12:45:54

标签: javascript node.js gruntjs gulp

我正在使用gulp。我想在' build-dev'之后运行' connect task。任务已完成。
这是我写的:

gulp.task('dev', [ 'build-dev' ], function() {
    return gulp.run([ 'connect' ]);
});

这会引发警告:

gulp.run() has been deprecated. Use task dependencies or gulp.watch task triggering instead.

我该如何解决?

3 个答案:

答案 0 :(得分:1)

创建“connect”作为新任务,依赖于“build-dev”和“dev”?

https://stackoverflow.com/a/26390567/125680

编辑:好的,找到你了。

根据这个:

https://github.com/gulpjs/gulp/issues/96

还没有一种方法可以做到这一点,所以他们推荐运行序列模块:

https://www.npmjs.org/package/run-sequence

答案 1 :(得分:0)

我目前的解决方案是使用承诺:

var build = function() {
    return new Promise(function(fulfill, reject) {
        // assuming usage like 'build(args, callback)'
        build(args, function(err) {
            if (err) {
                console.log('build failed');
                reject(err);
            } else {
                console.log('build succeeded');
                fulfill();
            }
        });
    });
};
var connect = function() {
    return new Promise(function(fulfill, reject) {
        // assuming usage like 'connect(address, callback)'
        connect(address, function(err) {
            if (err) {
                console.log('connect failed');
                reject(err);
            } else {
                console.log('connect succeeded');
                fulfill();
            }
        });
    });
};
gulp.task('dev', function() {
    return build().then(function() {
        return connect();
    });
});

答案 2 :(得分:-3)

要使用任务依赖关系,您应该重写:

gulp.task('dev', [ 'build-dev' ], function() {
  return gulp.run([ 'connect' ]);
});

到此:

gulp.task('dev', [ 'build-dev', 'connect' ]);