| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -217,10 +217,6 @@ BufferはStringと相互変換が可能であるため、多くのgulpプラグ | |||
| 217 | 217 | gulpプラグインの仕組みは[vinyl](https://github.com/gulpjs/vinyl "vinyl")オブジェクトのデータをプラグイン同士でやり取りすることで入力/変換/出力を行い、 | |
| 218 | 218 | そのインタフェースとして既存のNode.js Streamを使っていると言えます。 | |
| 219 | 219 | ||
| 220 | - ## どういう用途に向いている? | ||
| 221 | - | ||
| 222 | - - [ ] どういう用途に向いていない? | ||
| 223 | - | ||
| 224 | 220 | ## エコシステム | |
| 225 | 221 | ||
| 226 | 222 | gulpのプラグインが行う処理は「入力に対して出力を返す」が主となっています。 | |
@@ -242,3 +238,31 @@ Node.js Streamのデフォルトでは流れるデータが`Buffer`であるた | |||
| 242 | 238 | ||
| 243 | 239 | このようにして、gulpはタスクに必要な単機能のプラグインを既存のライブラリを使って作りやすくしています。 | |
| 244 | 240 | これにより再利用できるプラグインが多くできることでエコシステムを構築していると言えます。 | |
| 241 | + | ||
| 242 | + ## どういう用途に向いている? | ||
| 243 | + | ||
| 244 | + gulpはそれ自体はデータの流れを管理するだけであり、タスクを実現するためにはプラグインが重要になります。 | ||
| 245 | + タスクには様々な処理が想定されるため、必要になるプラグインも種類が多く必要です。 | ||
| 246 | + | ||
| 247 | + gulpの中でgulpらしいという部分は[vinyl](https://github.com/gulpjs/vinyl "vinyl")オブジェクトを中間フォーマットとして決めた事です。 | ||
| 248 | + これにより既存のライブラリをラップしただけのプラグインが作りやすくなっています。 | ||
| 249 | + | ||
| 250 | + またgulpは、Gruntとは異なり、タスクをJavaScriptのコードして表現します。 | ||
| 251 | + これにより、プラグインの組み合わせだけだと実現できない場合に、直接コードを書くことで対応するといった対処法を取ることができます。 | ||
| 252 | + | ||
| 253 | + そのため、プラグインの行う処理の範囲が予測できない場合に、gulpのように中間フォーマットとデータの流し方だけを決めるというやり方は向いています。 | ||
| 254 | + | ||
| 255 | + ## どういう用途に向いていない? | ||
| 256 | + | ||
| 257 | + プラグインを複数組み合わせ扱うものに共通することですが、プラグインの組み合わせの問題はgulpでも発生します。 | ||
| 258 | + | ||
| 259 | + 例えば、[Browserify](https://github.com/substack/node-browserify)はNode.js Streamを扱えますが、 | ||
| 260 | + 先頭に置かないと他のプラグインと組わせて利用できない問題があります。 | ||
| 261 | + | ||
| 262 | + - [gulp/browserify-transforms.md at master · gulpjs/gulp](https://github.com/gulpjs/gulp/blob/master/docs/recipes/browserify-transforms.md "gulp/browserify-transforms.md at master · gulpjs/gulp") | ||
| 263 | + | ||
| 264 | + このような問題に対してgulpはガイドラインやレシピといったドキュメントを充実させることで対処しています。 | ||
| 265 | + | ||
| 266 | + - [gulp/docs at master · gulpjs/gulp](https://github.com/gulpjs/gulp/tree/master/docs "gulp/docs at master · gulpjs/gulp") | ||
| 267 | + | ||
| 268 | + そのため、プラグインの仕組みとして組み合わせの問題を防止するのは難しいです。 | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments