记录gulp4.0的那些坑

问题1. 在执行gulp命令时控制台报错:Task function must be specified。

解决方法:

4.0错误的写法:

    gulp.task('default', ['del'], function() {

        // default task code here

    });

修改为最新的正确写法:

    gulp.task('default', gulp.series('del', function() {

        // default task code here

}));

问题2. Gulp error: The following tasks did not complete: Did you forget to signal async completion?

var gulp = require('gulp');

gulp.task('message', function() {

  console.log("HTTP Server Started");

});

解决办法:

1.这种操作方式是用来新建task的,和3.x的用法一样。

var print = require('gulp-print');

gulp.task('message', function() {

  return gulp.src('package.json')

    .pipe(print(function() { return 'HTTP Server Started'; }));

});

2. 返回一个Promise

在异步请求机制中,是有一个Promise对象的,它包含了请求的过程中所有内容。如下:

gulp.task('message', function() {

  return new Promise(function(resolve, reject) {

    console.log("HTTP Server Started");

    resolve();

  });

});

3. 返回一个回调函数

这个是最简单的一种方法,gulp会自动将这个回调函数作为一个参数返回到任务中,在完成的时候一定要调用这个函数。如下:

gulp.task('message', function(done) {

  console.log("HTTP Server Started");

  done();

});

4. 返回一个子进程child process

当我们只是执行一段纯js代码,没有用到node相关的方法时用这个方法

var spawn = require('child_process').spawn;

gulp.task('message', function() {

  return spawn('echo', ['HTTP', 'Server', 'Started'], { stdio: 'inherit' });

});

5. 返回一个 RxJS Observable.

如果你是用RxJS 的时候,可以用这个方法。

var Observable = require('rx').Observable;

gulp.task('message', function() {

  var o = Observable.just('HTTP Server Started');

  o.subscribe(function(str) {

    console.log(str);

  });

  return o;

});

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值