0

在 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实现中的错误?

4

1 回答 1

0

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

你可以使用gulp-flatten

var flatten = require('gulp-flatten');
gulp.task( 'compile', function () {
    return gulp.src( 'src/modules/*/wrappers/**' )
        .pipe(flatten())
        .pipe( gulp.dest( 'build/' ) );
} );
于 2015-05-09T17:39:45.227 回答