yeoman:installDependencyのcallbackでcopyが動かぬ
yeomanで自分用generatorをつくったらハマった。
bowerでファイルのインストール後に開発ディレクトリに配置したいのだが、
エラーが出ずcopyも実行されない。
install: function () { this.installDependencies({ callback: function () { this.copy( this.destinationPath("/bower_components/normalize.css/normalize.css"), this.destinationPath("/src/css/normalize.css") ); }.bind(this) }); }
thisもちゃんとBaseが入ってたしcopyの中身もおかしくない。
また、コピー元も先も存在しているため原因不明。
結局、気持ち悪いがstackoverflowを参考にネイティブのfsを使った。
install: function () { this.installDependencies({ callback: function () { var fs = require('fs'); fs.createReadStream(this.destinationPath("/bower_components/normalize.css/normalize.css")) .pipe(fs.createWriteStream(this.destinationPath("/src/css/normalize.css")); }.bind(this) }); }
この形だと存在しないディレクトリが含まれている場合、copyのように自動では生成されない。
エラーも吐かず、実行されてないことに気づきにくくいため注意。