仅复制Gulp中文件夹内的文件

Cas*_*per 9 javascript node.js gulp

我正在尝试将一个文件夹中的所有文件复制到另一个文件夹的gulp任务

gulp.task('copy-fonts', ['unzip'], function() {
    return gulp.src('./gulp-tmp/**/fonts/*')
        .pipe(gulp.dest('fonts'));
});
Run Code Online (Sandbox Code Playgroud)

问题是,后面的目录名称各gulp-tmp不相同,所以我不得不在**那里使用.

所以结果就像结果一样 /fonts/[randomFolderName]/fonts/[the files]

我想要的是什么 /fonts/[the files]

Vad*_*dim 22

使用gulp-flatten.

var flatten = require('gulp-flatten');

gulp.src('./gulp-tmp/**/fonts/*')
  .pipe(flatten())
  .pipe(gulp.dest('fonts'));
Run Code Online (Sandbox Code Playgroud)


kar*_*sev 6

我使用没有外部库的简单代码,例如:

gulp.src('./src/fonts/*.{ttf,woff,eof,svg}')
  .pipe(gulp.dest('/build/fonts'));
Run Code Online (Sandbox Code Playgroud)

或只有html文件:

gulp.src('./src/templates/*.html')
  .pipe(gulp.dest('/build/templates'));
Run Code Online (Sandbox Code Playgroud)

  • 太棒了...谢谢!我环顾四周,找出为什么只有一个星号也会引入目录: ```javascript gulp.src('app/*') .pipe(gulp.dest(config.dist.root)); ``我错误地认为我需要双星号才能递归,但是看到你的解决方案让我意识到我可以这样做:````javascript gulp.src('app/*.*') .pipe (gulp.dest(config.dist.root)); ``我想它仍然会引入名称中带有点的目录......但无论如何,谢谢。 (2认同)