gulp.run()已被弃用。

3

我正在使用gulp,想要在“build-dev”任务完成后运行“connect”任务。
以下是我的编写内容:

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个回答

1

connect不能作为build-dev的依赖项,因为它也可以在build-staging之后运行。 - Naor

0

我的当前解决方案是使用 Promise:

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();
    });
});

-3

要使用任务依赖性,您应该重写这个:

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

转换为:

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

1
这是不正确的:第一个示例在“build-dev”之后运行“connect”。第二个示例并行运行它们。 - Cameron Little

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接