Gulp 为watch语句一口气运行两次js
我看到控制台日志语句,一旦我更改任何javascript文件,js任务就会运行两次。我想知道为什么每次更改都会运行两次Gulp 为watch语句一口气运行两次js,gulp,gulp-watch,Gulp,Gulp Watch,我看到控制台日志语句,一旦我更改任何javascript文件,js任务就会运行两次。我想知道为什么每次更改都会运行两次 var gulp = require('gulp'); var concat = require("gulp-concat"); var uglify = require("gulp-uglify"); gulp.task('default', function() { gulp.watch("public/js/**/*.*", ["js"]); }); gulp
var gulp = require('gulp');
var concat = require("gulp-concat");
var uglify = require("gulp-uglify");
gulp.task('default', function() {
gulp.watch("public/js/**/*.*", ["js"]);
});
gulp.task("js", function(){
var js = [
"public/js/**/*.js",
"!public/js/api/**/*.js"
];
gulp.src(js)
.pipe(concat("app.min.js"))
.pipe(uglify())
.pipe(gulp.dest("public/js"));
});
控制台
[13:02:27] Starting 'js'...
[13:02:27] Finished 'js' after 1.6 ms
[13:02:27] Starting 'js'...
[13:02:27] Finished 'js' after 5.1 ms
问题是,检测到更改时,您正在监视与您运行的任务中的目标目录相同的目录。当前,您的生成流如下所示:
.pipe(gulp.dest("dist/js"));
之后,您的项目应具有以下结构:
public
js
script.js
dist
js
app.min.js
grunfile.js
...
其中,public目录用于保存监视的源文件,dist目录保存生成的输出。如果我是你,我会重新考虑将public目录重命名为更具描述性的src,但这取决于你:)问题是,当检测到更改时,你正在监视与你运行的任务中的目标目录相同的目录。当前,您的生成流如下所示:
.pipe(gulp.dest("dist/js"));
之后,您的项目应具有以下结构:
public
js
script.js
dist
js
app.min.js
grunfile.js
...
其中,public目录用于保存监视的源文件,dist目录保存生成的输出。如果我是你,我会重新考虑将public目录重命名为更具描述性的src,但这取决于你:)