gulp几个常见问题及解决方案

1. 找不到local gulp

报错代码:

$ gulp 
[23:29:31] Local gulp not found in 
[23:29:31] Try running: npm install gulp 

解决:npm link gulp

或者重新全局和项目安装gulp

2. cannot find module 'gulp'

报错代码:

cannot find module 'gulp'**

虽然项目中已经按照了gulp,但还是在输入gulp时,显示没找到gulp模块。

解决方法是:全局和项目重装gulp

全局: npm install -g gulp
项目里: npm install gulp --save-dev

3. 没带return返回语句

报错代码:

The following tasks did not complete: compass
Did you forget to signal async completion?

代码提示我们,是不是忘了写异步完成的标记?

这个提示常常是在执行多个任务产生的

加上 return返回值

gulp的task任务要加上返回值,如果是单任务,没有return其实也是可以执行的,不会报错。

当多任务执行,涉及到执行顺序时。没有return,就会导致当前任务还没完成就会同步执行下一个任务,就会报错。

没加return:

gulp.task('default', function() {
     gulp.src('src/entry.js')
    .pipe(webpack())
    .pipe(gulp.dest('dist/'));
});

加上return后:

gulp.task('default', function() {
  return gulp.src('src/entry.js')
    .pipe(webpack())
    .pipe(gulp.dest('dist/'));
});

4. gulp 4.0版本问题

报错代码

Error:  watch task has to be a function 

(optionally generated by using gulp.parallel or gulp.series)**

这里提示要采用gulp.parallel or gulp.series方法来执行多任务,因为我安装的是 gulp 4.0,于之前版本用法不同。

我报错的代码

gulp.task('watch', function () {
	//copyexceptminjs 是我定义的gulp任务
    gulp.watch('src/js/*.js', ['copyexceptminjs']);
});

b. 加入gulp.series或者gulp.parallel后

gulp.task('watch', function () {
   gulp.watch('src/js/*.js', gulp.series('copyexceptminjs'));
});
posted @ 2019-03-17 13:43  hjson  阅读(6227)  评论(1编辑  收藏  举报