File tree 1 file changed +28
-4
lines changed
1 file changed +28
-4
lines changed 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
+ そのため、プラグインの仕組みとして組み合わせの問題を防止するのは難しいです。
You can’t perform that action at this time.
0 commit comments