Gulp 4手表只运行一次

时间:2016-05-08 12:28:53

标签: javascript gulp gulp-watch gulp-4

正如我在标题中提到的,运行gulp.watch时出现问题。它仅在文件中第一次更改后才运行监视,当我更改第二个,第三个等等时,它不会运行任务 以下是我的gulpfile.js

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

1 个答案:

答案 0 :(得分:0)

经过长时间的尝试,我找到了解决这个问题的方法。

我不知道原因,但此配置适用于Windows ,但正如Ubuntu上所见,我必须将**添加到路径 观看归档此部分代码:

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