概念#

APIドキュメントを理解するには、以下の概念を理解しておく必要があります。これらの概念はドキュメント全体で参照されるため、詳細な説明が必要な場合はこのページを参照してください。

初めての方は、はじめにガイドから始めてください。

Vinyl#

Vinylは、ファイルを記述するメタデータオブジェクトです。Vinylインスタンスの主なプロパティは、ファイルシステム上のファイルの中核となる側面である`path`と`contents`です。Vinylオブジェクトは、ローカルファイルシステム上またはリモートストレージオプションなど、さまざまなソースからのファイルを記述するために使用できます。

Vinylアダプター#

Vinylはファイルを記述する方法を提供しますが、これらのファイルにアクセスする方法が必要です。各ファイルソースには、Vinylアダプターを使用してアクセスします。

アダプターは以下を公開します。

  • シグネチャ`src(globs, [options])`を持つメソッドで、Vinylオブジェクトを生成するストリームを返します。
  • シグネチャ`dest(folder, [options])`を持つメソッドで、Vinylオブジェクトを消費するストリームを返します。
  • `vinyl-fs`が提供する`symlink`メソッドなど、入出力メディアに固有の追加メソッド。これらは常に、Vinylオブジェクトを生成および/または消費するストリームを返す必要があります。

タスク#

各gulpタスクは、エラーファーストコールバックを受け入れるか、ストリーム、Promise、イベントエミッター、子プロセス、またはObservableを返す非同期JavaScript関数です。一部のプラットフォームの制限により、同期タスクはサポートされていません。

詳細な説明については、タスクの作成を参照してください。

Glob#

Globは、`*`、`**`、`!`などのリテラル文字やワイルドカード文字の文字列で、ファイルパスと照合するために使用されます。グロビングとは、1つ以上のglobを使用してファイルシステム上のファイルを検索することです。

Globの経験がない場合は、Globの説明を参照してください。

Globベース#

Globベース(Glob親とも呼ばれます)は、Glob文字列内の特殊文字の前のパスセグメントです。そのため、`/src/js/**.js`のGlobベースは`/src/js/`です。Globに一致するすべてのパスは、Globベースを共有することが保証されています。つまり、そのパスセグメントは変数にすることはできません。

`src()`によって生成されたVinylインスタンスは、Globベースを`base`プロパティとして設定して構築されます。`dest()`でファイルシステムに書き込むと、ディレクトリ構造を保持するために、出力パスから`base`が削除されます。

詳細については、glob-parentリポジトリを参照してください。

ファイルシステムの統計情報#

ファイルメタデータは、Nodeの`fs.Stats`のインスタンスとして提供されます。これは、Vinylインスタンスの`stat`プロパティとして使用でき、Vinylオブジェクトがディレクトリまたはシンボリックリンクを表しているかどうかを判断するために内部的に使用されます。ファイルシステムに書き込むと、権限と時刻の値はVinylオブジェクトの`stat`プロパティと同期されます。

ファイルシステムモード#

ファイルシステムモードは、ファイルにどのような権限があるかを決定します。ファイルシステム上のほとんどのファイルとディレクトリは、かなり寛容なモードになっているため、gulpはユーザーに代わってファイルの読み取り/書き込み/更新を行うことができます。デフォルトでは、gulpは実行中のプロセスと同じ権限でファイルを作成しますが、`src()`、`dest()`などのオプションを使用してモードを設定できます。権限(EPERM)の問題が発生している場合は、ファイルのモードを確認してください。

モジュール#

Gulpは、連携して動作するように統合された多くの小さなモジュールで構成されています。小さなモジュール内でsemverを利用することにより、gulpの新しいバージョンを公開することなく、バグ修正と機能をリリースできます。多くの場合、メインリポジトリに進行状況が表示されないときは、これらのモジュールのいずれかで作業が行われています。

問題が発生した場合は、`npm update`コマンドを使用して現在のモジュールが更新されていることを確認してください。問題が解決しない場合は、個々のプロジェクトのリポジトリでissueを開いてください。

  • undertaker - タスク登録システム
  • vinyl - 仮想ファイルオブジェクト
  • vinyl-fs - ローカルファイルシステムへのvinylアダプター
  • glob-watcher - ファイルウォッチャー
  • bach - `series()`と`parallel()`を使用したタスクオーケストレーション
  • last-run - タスクの最終実行時間を追跡
  • vinyl-sourcemap - 組み込みのソースマップサポート
  • gulp-cli - gulpと対話するためのコマンドラインインターフェース