【问题标题】:gulp.run() has been deprecatedgulp.run() 已被弃用
【发布时间】:2014-12-08 12:45:53
【问题描述】:

我正在使用 gulp。我想在“build-dev”任务完成后运行“连接任务”。
这是我写的:

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

这会导致警告:

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

我该如何解决?

【问题讨论】:

    标签: javascript node.js gruntjs gulp


    【解决方案1】:

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

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

    编辑:好的,知道了。

    据此:

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

    在 gulp 中还没有固定的方法来做到这一点,所以他们推荐 run-sequence 模块:

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

    【讨论】:

    • connect 不能依赖于 build-dev,因为它也可以在 build-staging 之后运行。
    【解决方案2】:

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

    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' ]);
      

      【讨论】:

      • 这不是真的:第一个示例在“build-dev”之后运行“connect”。第二个让它们并行运行。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-04
      • 2018-12-12
      • 2014-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多