bowerを最近ようやく使い始めて、grunt-bower-taskで良い感じにtargetDirに吐き出すようにしたかったんですが、
デフォルトのlayoutはやたらディレクトリが深くなったり、
きちんとbower.jsonでmainを指定しているのとそうでないのとで構造が違ってくるとか、
もうなんか嫌だなあと思ったのでサクッと自前でlayout作ってみた。
Gruntfile.js
var path = require('path');
bower: {
options: {
targetDir: 'js/lib',
layout: function(type, component) {
var makeDir = false;
if(makeDir) {
if(type === 'css') {
return path.join(component, type);
} else {
return path.join(component);
}
}
}
}
}
targetDir
には吐き出したい先のディレクトリ、 makeDir
はコンポーネントごとにディレクトリ分けるかどうかbooleanで記述します。
上の例では js/lib
直下にライブラリのファイルが吐き出されるようになります。
あとはbower.json
で良い感じにexportsOverride
を書いておけば(例えば本当に使うファイルだけ指定しておく)、きっと良い感じに吐き出してくれます。