# vinyl-file [![Build Status](https://travis-ci.org/sindresorhus/vinyl-file.svg?branch=master)](https://travis-ci.org/sindresorhus/vinyl-file)
> Create a [Vinyl file](https://github.com/gulpjs/vinyl) from an actual file
## Install
```
$ npm install --save vinyl-file
```
## Usage
```js
const vinylFile = require('vinyl-file');
vinylFile.read('index.js').then(file => {
console.log(file.path);
//=> '/Users/sindresorhus/dev/vinyl-file/index.js'
console.log(file.cwd);
//=> '/Users/sindresorhus/dev/vinyl-file'
});
const file = vinylFile.readSync('index.js');
console.log(file.path);
//=> '/Users/sindresorhus/dev/vinyl-file/index.js'
console.log(file.cwd);
//=> '/Users/sindresorhus/dev/vinyl-file'
```
## API
### read(path, [options])
Returns a promise for a Vinyl file.
### readSync(path, [options])
Create a Vinyl file synchronously and return it.
#### options
Type: `Object`
##### base
Type: `string`
Default: `process.cwd()`
Override the `base` of the Vinyl file.
##### cwd
Type: `string`
Default: `process.cwd()`
Override the `cwd` (current working directory) of the Vinyl file.
##### buffer
Type: `boolean`
Default: `true`
Setting this to `false` will return `file.contents` as a stream. This is useful when working with large files. **Note:** Plugins might not implement support for streams.
##### read
Type: `boolean`
Default: `true`
Setting this to `false` will return `file.contents` as `null` and not read the file at all.
## Related
- [vinyl-read](https://github.com/SamVerschueren/vinyl-read) - Create vinyl files from glob patterns
## License
MIT © [Sindre Sorhus](https://sindresorhus.com)