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を書いておけば(例えば本当に使うファイルだけ指定しておく)、きっと良い感じに吐き出してくれます。