タスクの中でbower install的なことをしたかった話。
ダメだった方
最初に目についたgulp-install
というのを使ってざっくり下記な感じでやってみた。
が、これが癖者。finishのイベントのハンドリングがうまくいかない
bad-case.js
gulp.task('install', function(cb){
gulp.src(["./bower.json"])
.pipe(install())
.on('finish', function(){
cb();
});
});
});
もっかい調べてみる。
調べると類似でgulp-bower
なんかを見つけたりした。
が、ここでひとまず落ち着いてblacklistを見てみる。
gulp-install
とgulp-bower
、どっちも載っている。
これではgulpポリスに怒られてしまう。
なおす
gulp-installについては "use gulp-spawn"
だそうな。
今回やりたい事はbowerを自動でインストールしたいというところなので、gulp-bower
あたりをみる。
"use the bower module directly"
なるほど。bower直接使えと。
bowerの公式を見ながらこんな感じで書いてみる
bower-directory.js
gulp.task('install', function(cb){
bower.commands.install()
.on("log", function(log){
gutil.log(log.message);
})
.on("end", function(){
cb();
});
});
なるほど。うまく動いたっぽい。
締め
blacklist、普段はあのやり方好きじゃないなーと思って最初見てなかったけど、今回は普通に役に立った。