| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -214,10 +214,31 @@ BufferはStringと相互変換が可能であるため、多くのgulpプラグ | |||
| 214 | 214 | ||
| 215 | 215 | つまり、prefixを付けるといった変換処理自体は、既存のライブラリで行うことができるようになっています。 | |
| 216 | 216 | ||
| 217 | - gulpプラグインの仕組みは[vinyl](https://github.com/gulpjs/vinyl "vinyl")オブジェクトのデータをプラグイン同士でやり取りすることで入力/変換/出力を行い、そのインタフェースとして既存のNode.js Streamを使っていると言えます。 | ||
| 217 | + gulpプラグインの仕組みは[vinyl](https://github.com/gulpjs/vinyl "vinyl")オブジェクトのデータをプラグイン同士でやり取りすることで入力/変換/出力を行い、 | ||
| 218 | + そのインタフェースとして既存のNode.js Streamを使っていると言えます。 | ||
| 219 | + | ||
| 220 | + ## どういう用途に向いている? | ||
| 218 | 221 | ||
| 219 | - - [ ] どういう用途に向いている? | ||
| 220 | 222 | - [ ] どういう用途に向いていない? | |
| 221 | - - [ ] この仕組みを使っているもの | ||
| 222 | - - [ ] 実装してみよう | ||
| 223 | - - [ ] エコシステム | ||
| 223 | + | ||
| 224 | + ## エコシステム | ||
| 225 | + | ||
| 226 | + gulpのプラグインが行う処理は「入力に対して出力を返す」が主となっています。 | ||
| 227 | + この受け渡すデータとして[vinyl](https://github.com/gulpjs/vinyl "vinyl")オブジェクトを使い、受け渡すAPIのインターフェースとしてNode.js Streamを使っています。 | ||
| 228 | + | ||
| 229 | + gulpではプラグインは単機能であること推奨しています。 | ||
| 230 | + | ||
| 231 | + > Your plugin should only do one thing, and do it well. | ||
| 232 | + > -- [gulp/guidelines.md](https://github.com/gulpjs/gulp/blob/master/docs/writing-a-plugin/guidelines.md "gulp/guidelines.md at master · gulpjs/gulp") | ||
| 233 | + | ||
| 234 | + 一つのプラグインで複数の処理をすることは可能ですが、Node.js Streamに乗ることでこの事を解決しています。 | ||
| 235 | + | ||
| 236 | + 元々、Transform Streamは一つの処理を行うことに向いていて、`pipe`を繋げることで複数の処理を行うため、 | ||
| 237 | + gulpは既存のNode.js Streamに乗ることで独自のAPIを使わずに解決しています。 | ||
| 238 | + | ||
| 239 | + また、gulpはタスク自動化ツールであるため、既存のライブラリをそのままタスクとして使いやすくすることが重要だと言えます。 | ||
| 240 | + Node.js Streamのデフォルトでは流れるデータが`Buffer`であるため、そのままでは既存のライブラリでは扱いにくい問題を | ||
| 241 | + データとして[vinyl](https://github.com/gulpjs/vinyl "vinyl")オブジェクトを流す事で緩和しています。 | ||
| 242 | + | ||
| 243 | + このようにして、gulpはタスクに必要な単機能のプラグインを既存のライブラリを使って作りやすくしています。 | ||
| 244 | + これにより再利用できるプラグインが多くできることでエコシステムを構築していると言えます。 | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments