2015-09-07 51 views
0

我是新來的吞噬者,我試圖在移動新文件之前觀看玉石和更少的文件並清理構建目錄。不知怎的,這個任務第一次工作,我改變一個文件,然後它不會繼續觀看。 我發現了許多不同的解決方案,但他們都沒有爲我工作。 這裏是我的手錶任務:gulp.watch任務在第一次更改後崩潰

gulp.task('watch', function() { 
    gulp.watch(config.lessDir + '/**.less', ['css']); 
    gulp.watch(config.jadeDir + '/**.jade', ['jade']); 
}); 

gulp.task('jade', function() { 
    del.sync(['build/**.html']); 

    return gulp.src(config.jadeDir + '/**.jade') 
    .pipe(jade({ pretty: true })) 
    .pipe(gulp.dest('./build')); 
}); 

gulp.task('css', function() { 
    del.sync(['build/css/**.*']); 

    return gulp.src(config.lessDir + '/**.less') 
    .pipe(less()) 
    .pipe(gulp.dest('./build/css')) 
    .pipe(minifyCSS()) 
    .pipe(extReplace('.min.css')) 
    .pipe(gulp.dest('./build/css')); 
}); 

隨着管道工我得到的錯誤「undefined是不是一個函數」。

編輯:看起來像德爾不是問題,而是處理玉/少文件的管道。

+0

注意:如果'del'是[this](https://www.npmjs.com/package/del),那麼'del.sync'不接受回調。 'cb'可能永遠不會被調用。現在,這*可能會混淆Gulp,當任務函數收到一個參數時,它希望調用這個參數來知道任務完成。實際上,我不知道哪個優先確定任務完成,回調參數或返回的流,但如果不容易出錯,使用兩者至少會造成混淆。 –

+0

謝謝。我已經改變了。但我的問題仍然存在。 –

+0

你可以刪除del部分,看看問題是否仍然存在? – harishr

回答

1

對於每個人都有相同的問題:如果您使用相對路徑gulp.watch只檢測新的或刪除的文件。例如:使用「less」而不是「./less」。現在一切都應該像魅力一樣工作。

+0

歡迎來到堆棧溢出!您可以(也應該)將自己的答案標記爲正確,以使問題顯示爲已解決,而不是仍在等待答案。 –