Vinyl#

仮想ファイル形式。ファイルがsrc()で読み込まれると、パス、内容、その他のメタデータを含むファイルを表現する Vinyl オブジェクトが生成されます。

Vinyl オブジェクトは、プラグインを使用して変換を適用できます。また、dest()を使用してファイルシステムに保存することもできます。

src()で生成するのではなく、独自の Vinyl オブジェクトを作成する場合は、以下の「使用法」に示すように、外部の 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()相対パスの基準となるディレクトリ。正規化され、末尾のセパレータが削除されます。
basestringrelativeインスタンスプロパティを計算するために使用されます。設定されていない場合は、cwdの値に戻ります。通常は、グロブベースに設定します。正規化され、末尾のセパレータが削除されます。
pathstring完全な絶対ファイルパス。正規化され、末尾のセパレータが削除されます。
historyarray[ ]Vinylインスタンスのhistoryを事前に設定するパスの配列。通常は、以前のVinylオブジェクトから新しいVinylオブジェクトを派生させることで取得します。pathhistoryの両方が渡された場合、pathhistoryに追加されます。各項目は正規化され、末尾のセパレータが削除されます。
statobjectfs.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オブジェクトの各インスタンスは、仮想ファイルに関する情報にアクセスしたり、変更したりするためのプロパティとメソッドを持ちます。

インスタンスプロパティ#

内部で管理されるすべてのパス(contentsstatを除くインスタンスプロパティ)は、正規化され、末尾の区切り文字が削除されます。詳しくは正規化と連結をご覧ください。

プロパティ説明スロー
contentsReadableStream
Buffer
null
仮想ファイルの内容を取得および設定します。ReadableStreamに設定すると、cloneable-readableストリームでラップされます。ReadableStream、Buffer、またはnull以外の値に設定した場合。
statobjectfs.Statsのインスタンスを取得および設定します。Vinylオブジェクトがディレクトリまたはシンボリックリンクを表すかどうかを判断する際に使用されます。
cwdstring現在の作業ディレクトリを取得および設定します。相対パスの導出に使用されます。空の文字列または文字列以外の値に設定した場合。
basestringベースディレクトリを取得および設定します。relativeインスタンスプロパティの計算に使用されます。src()によって生成されたVinylオブジェクトでは、globベースに設定されます。nullまたはundefinedに設定した場合、cwdインスタンスプロパティの値に戻ります。空の文字列または文字列以外の値(nullまたはundefinedを除く)に設定した場合。
pathstring完全な絶対ファイルパスを取得および設定します。現在のpathとは異なる値を設定すると、新しいパスがhistoryインスタンスプロパティに追加されます。文字列以外の値を設定した場合。
historyarrayVinylオブジェクトに割り当てられたすべてのpath値の配列。最初の要素は元のパス、最後の要素は現在のパスです。このプロパティとその要素は読み取り専用として扱い、pathインスタンスプロパティを設定して間接的にのみ変更する必要があります。
相対パスstringbasepathインスタンスプロパティの間の相対パスセグメントを取得します。任意の値に設定した場合。pathが利用できないときにアクセスした場合。
dirnamestringpathインスタンスプロパティのディレクトリを取得および設定します。pathが利用できないときにアクセスした場合。
stemstringpathインスタンスプロパティのステム(拡張子なしのファイル名)を取得および設定します。pathが利用できないときにアクセスした場合。
extnamestringpathインスタンスプロパティの拡張子を取得および設定します。pathが利用できないときにアクセスした場合。
basenamestringpathインスタンスプロパティのファイル名(stem + extname)を取得および設定します。pathが利用できないときにアクセスした場合。
symlinkstringシンボリックリンクの参照パスを取得および設定します。文字列以外の値を設定した場合。

インスタンスメソッド#

メソッド戻り値の型戻り値
isBuffer()booleancontentsインスタンスプロパティがBufferの場合、trueを返します。
isStream()booleancontentsインスタンスプロパティがStreamの場合、trueを返します。
isNull()booleancontentsインスタンスプロパティが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()stringVinylオブジェクトのフォーマットされた解釈を返します。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