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