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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM