Skip to content

Commit a1c21fc

Browse files
committed
feat(gulp): メリッド、デメリット
1 parent f8e3322 commit a1c21fc

File tree

1 file changed

+28
-4
lines changed

1 file changed

+28
-4
lines changed

ja/gulp/README.md

+28-4
Original file line numberDiff line numberDiff line change
@@ -217,10 +217,6 @@ BufferはStringと相互変換が可能であるため、多くのgulpプラグ
217217
gulpプラグインの仕組みは[vinyl](https://github.com/gulpjs/vinyl "vinyl")オブジェクトのデータをプラグイン同士でやり取りすることで入力/変換/出力を行い、
218218
そのインタフェースとして既存のNode.js Streamを使っていると言えます。
219219

220-
## どういう用途に向いている?
221-
222-
- [ ] どういう用途に向いていない?
223-
224220
## エコシステム
225221

226222
gulpのプラグインが行う処理は「入力に対して出力を返す」が主となっています。
@@ -242,3 +238,31 @@ Node.js Streamのデフォルトでは流れるデータが`Buffer`であるた
242238

243239
このようにして、gulpはタスクに必要な単機能のプラグインを既存のライブラリを使って作りやすくしています。
244240
これにより再利用できるプラグインが多くできることでエコシステムを構築していると言えます。
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+
そのため、プラグインの仕組みとして組み合わせの問題を防止するのは難しいです。

0 commit comments

Comments
 (0)