Vinyl

Vinyl is a very simple metadata object that describes a file. When you think of a file, two attributes come to mind: path and contents. These are the main attributes on a Vinyl object - github

Gulp uses vinyl-fs, from which it inherits the gulp.src() and gulp.dest() methods. Vinyl-fs uses the vinyl file object, its virtual file system format. If we want to use gulp and/or gulp plugins with a regular read stream, we need to convert the read stream to vinyl first.

I think a file could look something like this:

{ cwd: '/', base: '/test/', path: '/test/file.js', contents: new Buffer('var x = 123') }

A file does not necessarily represent something on your computer’s file system. You have files on S3, FTP, Dropbox, Box, CloudThingly.io and other services. Vinyl can be used to describe files from all of these sources.