Search code examples
gulp

Gulp: copy file to multiple folders starting with specific string


I'm working to copy a file style.scss from specific directory to multiple folders that start with skin-.

In fact, i don't know how to tell gulp to choose folders that start with this string skin-.

Here is my gulp code:

// Copy Files
gulp.task( "copyFiles" , function() {
    return gulp.src( "app/scss/style.scss" )
        .pipe( gulp.dest( "app/scss/skins/skin-*" ) );
});

At command prompt, it says that the task is running but with no result.

I have searched a lot around for that, but i didn't find a method. I found this question here which near to my question context, but it didn't help! Gulp copy single file (src pipe dest) with wildcarded directory


Solution

  • Modifying only slightly @davidmdem's answer at saving to multiple destinations:

    const gulp = require("gulp");
    const glob = require("glob");
    
    const destinationFolders = glob.sync("app/scss/skins/skin-*");    
    
    gulp.task('copyFiles', function () {
      
      var stream = gulp.src("app/scss/style.scss");
    
      destinationFolders.forEach(function (skinFolder) {
          stream = stream.pipe(gulp.dest(skinFolder));
      });
    
      return stream;
    });
    

    You cannot put a glob into gulp.dest as you are trying in your question.