【问题标题】:Exclude a nested directory from being copied over when using a src glob使用 src glob 时排除嵌套目录被复制
【发布时间】:2015-05-09 16:46:24
【问题描述】:

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

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/

运行 gulp 任务后的目录结构:

+ 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

运行 gulp 任务后的预期目录结构:

+ 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 glob minimatch


    【解决方案1】:

    你没有做错任何事; gulp 用它的相对路径存储文件,这就是你得到整个目录结构的原因。

    你可以使用gulp-flatten:

    var flatten = require('gulp-flatten');
    gulp.task( 'compile', function () {
        return gulp.src( 'src/modules/*/wrappers/**' )
            .pipe(flatten())
            .pipe( gulp.dest( 'build/' ) );
    } );
    

    【讨论】:

    • 您好 Nickm 谢谢回复。这是一个非常有趣的模块 - 将立即尝试。它可以暂时解决问题,但它没有给出任何答案为什么我的问题会发生。如果“相对路径”是这个问题的根源,那么地球“src/modules/module_1/wrappers/**”将产生相同的结果 - 但它工作正常。此外,据我了解,例如地球仪构造 "wrappers/**" 应该匹配 dir "wrappers" 内的文件和子目录的路径,外部没有任何内容(检查终端命令 "ls wrappers/**" )。
    猜你喜欢
    • 2017-07-08
    • 2018-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-01
    • 2017-06-25
    • 2016-05-26
    相关资源
    最近更新 更多