Gulp 使用src glob时,从复制中排除嵌套目录

Gulp 使用src glob时,从复制中排除嵌套目录,gulp,glob,minimatch,Gulp,Glob,Minimatch,在使用glob-in-gulp-src方法时,我不能排除目录结构被复制。我的任务: gulp.task( 'compile', function () { return gulp.src( 'src/modules/*/wrappers/**' ) .pipe( gulp.dest( 'build/' ) ); } ); 我希望只复制文件,而不是整个目录结构 我的目录结构: + src/ + modules/ + module_1/

在使用glob-in-gulp-src方法时,我不能排除目录结构被复制。我的任务:

gulp.task( 'compile', function () {
    return gulp.src( 'src/modules/*/wrappers/**' )
        .pipe( gulp.dest( 'build/' ) );
} );
我希望只复制文件,而不是整个目录结构

我的目录结构:

+ src/
  + modules/
      + module_1/
          + wrappers/
              file_1
              file_2
      + module_2/
          + wrappers/
              file_3
              file_4
+ build/
+ src/
  + modules/
      + module_1/
          + wrappers/
              file_1
              file_2
      + module_2/
          + wrappers/
              file_3
              file_4
+ build/
  + modules/
      + module_1/
          + wrappers/
              file_1
              file_2
      + module_2/
          + wrappers/
              file_3
              file_4
+ src/
  + modules/
      + module_1/
          + wrappers/
              file_1
              file_2
      + module_2/
          + wrappers/
              file_3
              file_4
+ build/
      file_1
      file_2
      file_3
      file_4
运行gulp任务后的Dir结构:

+ src/
  + modules/
      + module_1/
          + wrappers/
              file_1
              file_2
      + module_2/
          + wrappers/
              file_3
              file_4
+ build/
+ src/
  + modules/
      + module_1/
          + wrappers/
              file_1
              file_2
      + module_2/
          + wrappers/
              file_3
              file_4
+ build/
  + modules/
      + module_1/
          + wrappers/
              file_1
              file_2
      + module_2/
          + wrappers/
              file_3
              file_4
+ src/
  + modules/
      + module_1/
          + wrappers/
              file_1
              file_2
      + module_2/
          + wrappers/
              file_3
              file_4
+ build/
      file_1
      file_2
      file_3
      file_4
运行gulp任务后预期的目录结构:

+ src/
  + modules/
      + module_1/
          + wrappers/
              file_1
              file_2
      + module_2/
          + wrappers/
              file_3
              file_4
+ build/
+ src/
  + modules/
      + module_1/
          + wrappers/
              file_1
              file_2
      + module_2/
          + wrappers/
              file_3
              file_4
+ build/
  + modules/
      + module_1/
          + wrappers/
              file_1
              file_2
      + module_2/
          + wrappers/
              file_3
              file_4
+ src/
  + modules/
      + module_1/
          + wrappers/
              file_1
              file_2
      + module_2/
          + wrappers/
              file_3
              file_4
+ build/
      file_1
      file_2
      file_3
      file_4
值得注意的是,使用例如glob'src/modules/module_1/wrappers/**'可以获得所需的结果。

使用的模块:

  • 大口喝3.8.10

是我做错了什么,还是js glob实现中的错误?

你没有做错什么;gulp使用文件的相对路径存储文件,这就是为什么要获得整个目录结构

您可以使用:


你好,Nickm thaks,请回复。这是一个非常有趣的模块,我们将很快试用。它可以暂时解决这个问题,但它并没有给出我的问题为什么会发生的任何答案。如果“相对路径”是这个问题的根源,那么globe“src/modules/module_1/wrappers/**”将生成相同的结果——但其工作正常。此外,据我所知,具有例如构造“wrappers/**”的globe应该与dir“wrappers”内部的文件和子目录的路径相匹配,而在dir“wrappers”外部则不匹配(签入终端命令“ls wrappers/**”)。