Gulp:如何复制多个文件并保留文件夹结构

我正尝试使用gulp将文件从一个文件夹复制到另一个文件夹

gulp.task('move-css',function(){ return gulp.src([ './source/css/one.css', './source/other/css/two.css' ]).pipe(gulp.dest('./public/assets/css/')); }); 

上面的代码是将one.csstwo.css复制到public/assets/css文件夹

如果我使用gulp.src('./source/css/*.css')它会将所有的css文件复制到public/assets/css文件夹,这不是我想要的

我的问题是如何select多个文件,并保持文件夹结构?

为了实现这一点,请指定base

¶base – 指定相对于cwd的文件夹。 缺省值是glob开始的地方。 这用于在保存.dest()时确定文件名


在你的情况下,这将是:

 gulp.task('move-css',function(){ return gulp.src([ './source/css/one.css', './source/other/css/two.css' ], {base: './source/'}) .pipe(gulp.dest('./public/assets/')); }); 

文件夹结构:

 |-gulpfile.js |-source | |-css | |-other | |-css |-public | |-assets