Gulp 4只手表只走1次
Gulp 4 watch runs only 1 time
正如我在标题中提到的,存在问题 运行ning 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
经过长时间的尝试,我找到了解决这个问题的方法。
我不知道为什么,但此配置 适用于 Windows,但正如出现在 Ubuntu 上一样,我必须添加 **
到 watched 文件的 path 这部分代码:
gulp.task('watch', function () {
gulp.watch( './**/test.js', gulp.series('es6') );
console.log('Running watch...');
});
正如我在标题中提到的,存在问题 运行ning 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
经过长时间的尝试,我找到了解决这个问题的方法。
我不知道为什么,但此配置 适用于 Windows,但正如出现在 Ubuntu 上一样,我必须添加 **
到 watched 文件的 path 这部分代码:
gulp.task('watch', function () {
gulp.watch( './**/test.js', gulp.series('es6') );
console.log('Running watch...');
});