Merges file globs from multiple source directories

Usage no npm install needed!

<script type="module">
  import vinylFsMerge from '';



Merges file globs from two or more source directories. First source takes precedence over the next.

npm status node


const merge = require('vinyl-fs-merge')
    , gulp = require('gulp')
    , imagemin = require('gulp-imagemin')

merge(['./my-brand', './default'], '*.png')

If both directories have a logo.png, then only my-brand/logo.png is copied to dist. If my-brand/logo.png does not exist, default/logo.png is copied instead.

merge(paths, glob, [options])

  • paths: array of source directories
  • glob: one or more glob patterns passed to vinyl-fs (must be relative)


  • read: if false, do not read file contents
  • cwd: custom working directory to resolve source paths
  • Other options are passed to vinyl-fs, except:
    • cwd is set to a resolved source path
    • allowEmpty is always true (meaning it doesn't fail on a singular glob)


With npm do:

npm install vinyl-fs-merge


MIT © ironSource.