2016-05-08 78 views
2

正如我在標題中提到的,運行時出現問題gulp.watch。它只在文件第一次更改後運行監視,當我更改第二,第三等時它不運行任務。
下面是我gulpfile.jsGulp 4手錶只能運行1次

var gulp = require('gulp'); 
var babel = require('gulp-babel'); 
var rename = require("gulp-rename"); 
var del = require('del'); 
var less = require('gulp-less'); 

gulp.task('es6', function() { 
    return gulp.src('./test.js') 
     .pipe(rename(function (path) { 
      path.basename += "-es6"; 
      return path; 
     })) 
     .pipe(babel()) 
     .pipe(gulp.dest('./')) 
}); 

gulp.task('clean', function() { 
    return del('./test-es6.js'); 
}); 

gulp.task('watch', function() { 
    gulp.watch('./test.js', gulp.series('es6')); 
    console.log('Running watch...'); 
}); 

gulp.task('default', gulp.series('clean', 'es6', gulp.parallel('watch'))); 

還有一些日誌:

$: gulp 
[14:22:40] Using gulpfile /var/www/html/es2015/gulpfile.js 
[14:22:40] Starting 'default'... 
[14:22:40] Starting 'clean'... 
[14:22:40] Finished 'clean' after 11 ms 
[14:22:40] Starting 'es6'... 
[14:22:43] Finished 'es6' after 2.11 s 
[14:22:43] Starting '<parallel>'... 
[14:22:43] Starting 'watch'... 
Running watch... 
[14:22:55] Starting '<series>'... 
[14:22:55] Starting 'es6'... 
[14:22:55] Finished 'es6' after 42 ms 
[14:22:55] Finished '<series>' after 43 ms << first change, but no second third and etc. 

我使用了類似的配置在幾個項目,這是很好,一切正常。
我不知道這個信息是否重要,但我使用的是Ubuntu 14.04

回答

0

經過長時間的努力,我找到了解決這個問題的辦法。

我不知道爲什麼,但這種配置在Windows工作,但在Ubuntu上出現了我不得不添加**路徑觀看文件的這部分代碼:

gulp.task('watch', function() { 
    gulp.watch('./**/test.js', gulp.series('es6')); 
    console.log('Running watch...'); 
}); 
+0

我在arch linux中遇到了同樣的問題,並且在被監視文件的路徑中添加'**'而不是修復它。傷心〜 – Roy

+0

你能提供一些代碼,我會盡力幫助 – lomboboo

+0

像'/ ** * 看src文件夾改變一些代碼,然後運行的WebPack *看DIST文件夾更改然後重新加載瀏覽器 */ VAR srcWatcher =一飲而盡。 watch('./**/ src/**/*',gulp.series('webpack','trim','jekyll',function(){browser.ync.reload(); }));'和總代碼,你可以看到我的回購github,地址是https://github.com/dxcqcv/dxcqcv.github.io – Roy