How to copy multiple files and keep the folder structure with Gulp

NullPoiиteя picture NullPoiиteя · May 6, 2015 · Viewed 35.6k times · Source

I am trying to copy files from one folder to another folder using Gulp:

gulp.task('move-css',function(){
  return gulp.src([
    './source/css/one.css',
    './source/other/css/two.css'

    ]).pipe(gulp.dest('./public/assets/css/'));
});

The above code is copying one.css & two.css to the public/assets/css folder.

And if I use gulp.src('./source/css/*.css') it will copy all CSS files to the public/assets/css folder which is not what I want.

How do I select multiple files and keep the folder structure?

Answer

Anulal S picture Anulal S · May 6, 2015

To achieve this please specify base.

¶ base - Specify the folder relative to the cwd. Default is where the glob begins. This is used to determine the file names when saving in .dest()


In your case it would be:

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

Folder structure:

.
├── gulpfile.js
├── source
│   ├── css
│   └── other
│       └── css
└── public
    └── assets