【发布时间】:2014-09-24 11:05:48
【问题描述】:
从昨天开始,我的 gulp-watch 任务开始发生一些奇怪的事情。 Afaik,我所做的只是更改目的地,但我可以使用下面发布的简单 gulpfile 重现:
我有这样的文件结构:
src/html/stuff/file.html
src/js/something/file.js
每当有更改时,我希望它反映在构建文件夹中,但是当我运行下面的 gulp watch:stuff 时,我会得到以下输出:
build/html/stuff/file.html
build/stuff/file.html
build/js/something/file.js
- 额外的
build/stuff/file.html文件来自哪里? - 我的手表功能出了什么问题?
gulpfile
var gulp = require('gulp');
var watch = require('gulp-watch');
gulp.task('watch:stuff', function () {
var pattern = ['src/html/**/*.html', 'src/js/**/*.js'];
gulp.src(pattern, { base : './src/' })
.pipe(watch({glob: pattern, emit : 'all', verbose: true},
function(files) {
files.pipe(gulp.dest('./build'));
}
)
);
});
使用 gulp(3.8.8)、gulp-watch(0.7.0)
【问题讨论】:
-
您是否希望文件在
build文件夹中被展平,例如build/file.html和build/file.js,那么您可以使用gulp-flatten。如果这有帮助,我会发布作为答案。 -
谢谢,但我最感兴趣的是保留一份准确的副本。我只是不希望出现额外的文件。在示例中,我只显示了一个文件,但实际上我的构建文件夹充满了不需要的文件和文件夹。
-
删除
base选项并重试。 -
user3995789:效果很好!现在我只需要弄清楚为什么它昨天与基地一起工作。非常感谢。发布答案,以便我接受。
标签: javascript gulp gulp-watch