【问题标题】:gulp watch copying files twice to different locationsgulp watch 两次将文件复制到不同的位置
【发布时间】: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.htmlbuild/file.js,那么您可以使用gulp-flatten。如果这有帮助,我会发布作为答案。
  • 谢谢,但我最感兴趣的是保留一份准确的副本。我只是不希望出现额外的文件。在示例中,我只显示了一个文件,但实际上我的构建文件夹充满了不需要的文件和文件夹。
  • 删除base 选项并重试。
  • user3995789:效果很好!现在我只需要弄清楚为什么它昨天基地一起工作。非常感谢。发布答案,以便我接受。

标签: javascript gulp gulp-watch


【解决方案1】:

删除base 选项,可能它以某种方式混淆了gulp.src,我不知道。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-18
    • 1970-01-01
    • 2019-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多