Vinyl#

Формат виртуального файла. Когда файл читается с помощью src(), создается объект Vinyl для представления файла, включая путь, содержимое и другие метаданные.

К объектам винила можно применить преобразования с помощью плагинов. Они также могут быть сохранены в файловой системе с помощью dest().

При создании ваших собственных объектов Vinyl - вместо создания с помощью src() - используйте внешний модуль vinyl, как показано в разделе Использование ниже.

Применение#

const Vinyl = require('vinyl');
const file = new Vinyl({
cwd: '/',
base: '/test/',
path: '/test/file.js',
contents: new Buffer('var x = 123')
});
file.relative === 'file.js';
file.dirname === '/test';
file.dirname = '/specs';
file.path === '/specs/file.js';
file.basename === 'file.js';
file.basename = 'file.txt';
file.path === '/specs/file.txt';
file.stem === 'file';
file.stem = 'foo';
file.path === '/specs/foo.txt';
file.extname === '.txt';
file.extname = '.js';
file.path === '/specs/foo.js';

Подпись#

new Vinyl([options])

Параметры#

параметртиппримечание
optionsobjectПодробнее в Опциях ниже.

Возвращается#

Экземпляр класса Vinyl, представляющий один виртуальный файл, подробно описанный в экземпляре Vinyl ниже.

Ошибки#

Когда какие-либо переданные параметры не соответствуют определениям свойств экземпляра (например, если для параметра path задано число) выбрасывается, как определено в таблице.

Опции#

наименованиетиппо умолчаниюпримечание
cwdstringprocess.cwd()Каталог, из которого будут производиться относительные пути. Будет нормализовано и конечные разделители будут удалены.
basestringИспользуется для вычисления свойства экземпляра relative. Возвращается к значению cwd , если не установлено. Обычно устанавливается равным glob base. Будет нормализовано и конечные разделители будут удалены.
pathstringThe full, absolute file path. Будет нормализовано и конечные разделители будут удалены.
historyarray[ ]Массив путей для предварительного заполнения history экземпляра Vinyl. Обычно происходит от создания нового объекта Vinyl из предыдущего объекта Vinyl. Если переданы и path, и history, то path добавляется к history. Каждый элемент будет нормализован, а завершающие разделители будут удалены.
statobjectЭкземпляр fs.Stats, обычно результат вызова fs.stat() для файла. Используется для определения того, представляет ли объект Vinyl каталог или символическую ссылку.
contentsReadableStream
Buffer
null
nullСодержимое файла. Если contents является ReadableStream, он упаковывается в поток cloneable-readable.

Любые другие свойства в options будут напрямую назначены экземпляру Vinyl.

const Vinyl = require('vinyl');
const file = new Vinyl({ foo: 'bar' });
file.foo === 'bar';

Экземпляр Vinyl#

Каждый экземпляр объекта Vinyl будет иметь свойства и методы для доступа и/или изменения информации о виртуальном файле.

Свойства экземпляра#

Все пути с внутренним управлением - любое свойство экземпляра, кроме contents и stat - нормализованы, а завершающие разделители удалены. Смотрите Нормализация и конкатенация для получения дополнительной информации.

свойствотипописаниеисключения
contentsReadableStream
Buffer
null
Получает и задает содержимое виртуального файла. Если установлено значение ReadableStream, он оборачивается в поток cloneable-readable.Если установлено любое значение, кроме ReadableStream, Buffer или null.
statobjectПолучает и задает экземпляр fs.Stats. Используется при определении того, представляет ли объект Vinyl каталог или символическую ссылку.
cwdstringПолучает и задает текущий рабочий каталог. Используется для получения относительных путей.Если установлена пустая строка или любое нестроковое значение.
basestringПолучает и задает базовый каталог. Используется для вычисления свойства экземпляра relative. На объекте Vinyl, созданном с помощью src() будет установлено значение glob base. Если установлено значение null или undefined, возвращается к значению свойства экземпляра cwd.Если установлена пустая строка или любое нестроковое значение (кроме null или undefined).
pathstringПолучает и задает полный абсолютный путь к файлу. Установка значения, отличного от текущего path, добавляет новый путь к свойству экземпляра history.Если установлено любое нестроковое значение.
historyarrayМассив всех значений path, которые был назначен объекту Vinyl. Первый элемент - это исходный путь, а последний элемент - это текущий путь. Это свойство и его элементы должны рассматриваться как доступные только для чтения и изменяться только косвенно путем установки свойства экземпляра path.
relativestringПолучает относительный сегмент пути между свойствами экземпляра base и path.Если установлено любое значение. При доступе, когда path недоступен.
dirnamestringПолучает и задает каталог свойства экземпляра path.При доступе, когда path недоступен.
stemstringПолучает и задает основу (имя файла без расширения) свойства экземпляра path.При доступе, когда path недоступен.
extnamestringПолучает и задает расширение свойства экземпляра path.При доступе, когда path недоступен.
basenamestringПолучает и задает имя файла (stem + extname) свойства экземпляра path.При доступе, когда path недоступен.
symlinkstringПолучает и задает путь ссылки символьной ссылки.Если установлено любое нестроковое значение.

Методы экземпляра#

методтип, возвращаемого значениявозвращается
isBuffer()booleanЕсли свойство экземпляра contents является Buffer, возвращает true.
isStream()booleanЕсли свойство экземпляра contents является Stream, возвращает true.
isNull()booleanЕсли свойство экземпляра contents имеет значение null, возвращает true.
isDirectory()booleanЕсли экземпляр представляет каталог, возвращает true. Экземпляр считается каталогом, если isNull() возвращает true, свойство экземпляра stat является объектом, а stat.isDirectory() возвращает true. Предполагается, что объект Vinyl был создан с использованием действительного (или правильно смоделированного) объекта fs.Stats.
isSymbolic()booleanЕсли экземпляр представляет собой символическую ссылку, возвращает true. Экземпляр считается символическим, если isNull() возвращает true, свойство экземпляра stat является объектом, а stat.isSymbolicLink() возвращает true. Предполагается, что объект Vinyl был создан с использованием действительного (или правильно смоделированного) объекта fs.Stats.
clone([options])objectНовый объект Vinyl со всеми клонированными свойствами. По умолчанию настраиваемые свойства глубоко клонированы. Если опция deep равна false, настраиваемые атрибуты будут неглубоко клонированы. Если опция contents имеет значение falseа свойство экземпляра contents является Buffer, Buffer будет повторно использован вместо клонированного.
inspect()stringВозвращает форматированную интерпретацию объекта Vinyl. Автоматически вызывается Node console.log.

Нормализация и конкатенация#

Все свойства пути нормализованы их установщиками. Объедините пути с помощью / вместо использования path.join(), и нормализация будет происходить правильно на всех платформах. Никогда не объединяйте с \ - это допустимый символ имени файла в системе POSIX.

const file = new File();
file.path = '/' + 'test' + '/' + 'foo.bar';
console.log(file.path);
// posix => /test/foo.bar
// win32 => \\test\\foo.bar