azu / JavaScript-Plugin-Architecture

JavaScriptプラグインアーキテクチャの本
https://azu.github.io/JavaScript-Plugin-Architecture/
MIT License
250 stars 12 forks source link

gulp #16

Closed azu closed 9 years ago

azu commented 9 years ago

Gulpのアーキテクチャ

http://gulpjs.com/

どう書ける?


gulp.task('scripts', ['clean'], function() {
  // Minify and copy all JavaScript (except vendor scripts)
  // with sourcemaps all the way down
  return gulp.src(paths.scripts)
    .pipe(sourcemaps.init())
      .pipe(coffee())
      .pipe(uglify())
      .pipe(concat('all.min.js'))
    .pipe(sourcemaps.write())
    .pipe(gulp.dest('build/js'));
});

どういう仕組み?


チェックリスト

azu commented 9 years ago

参考文献

gulp/docs/writing-a-plugin at master · gulpjs/gulp

azu commented 9 years ago

NodeのStreamが素で書くのが難しい問題があって進めにくい。 rvagg/through2みたいなラッパーがないと話がしにくいのが何かひっかかる

azu commented 9 years ago

基本は Class: stream.Transform かReadを扱う感じの内容にしたい。 細かいStreamについてはイチイチ触れると大変。

azu commented 9 years ago
azu commented 9 years ago

あるインターフェースに統一されているという事が一番大事

これは他のAPIのプラグインと同じなので、このインターフェースがネイティブに近い(NodeだとSteramはコアの概念)ものである事がこのパターンの良さでもある気がする。

azu commented 9 years ago

ConnectのreqとresはStreamなので実はこのパターンであったとも言える。 そうするとこのgulpは何がメインとするテーマになるべきなんだろうか?

azu commented 9 years ago

gulpのstreamについてまとまってる プログラマのためのGulp入門 // Speaker Deck

azu commented 9 years ago

origin: Gulp by Eric Schoffstall

azu commented 9 years ago

gulpのプラグインアーキテクチャって

という感じで明確なアーキテクチャが存在しているかというとまた難しい気がする。 こういうデザインだよって精神的な話になりやすい気がする

azu commented 9 years ago

gulpのプラグインアーキテクチャとは何か

処理対象をvinylで包んだものを既存の処理へ渡した結果をpipeしていくもの

azu commented 9 years ago

プラグインはプラグインのタスクに集中できる。 それ以外のことはStreamとVinylが吸収する。というのが大きな方向に思える

azu commented 9 years ago

https://medium.com/@contrahacks/gulp-3828e8126466

azu commented 9 years ago

Node.js v4じゃないと動かないことがどっかに明記されてるとよさそう

azu commented 9 years ago

ひとまず書けた https://azu.gitbooks.io/javascript-plugin-architecture/content/ja/gulp/index.html