欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-06-07 13:20:39
...

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'));
});
相关标签: gulp