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