読者です 読者をやめる 読者になる 読者になる

bowerでインストールしたライブラリをfuelphpで使う方法(メモ)

やりたかったこと

project
├── public
│   └─ assets
│      ├─ js
│      ├─ ・・・
├── fuel
└── nodejs # 自分で作ったフォルダ
   ├─ bower_components #bower installで取得したファイル
   │    ├─ angular
   │    ├─ angular-route
   ├─ ・・・

今まではこんな感じのディレクトリ構成で、bower_components以下のファイルを自分で/assets/js以下へコピーしたり、/assets/jsからbower_componetsへのシンボリックリンクをはったりしてとかやってました。

けどこれだと、
・ライブラリ追加するたびにコピーしなくてはならない
・開発と本番環境とか分かれてたらそれぞれシンボリックリンクはらなくてはならない
とかなってしまって非効率だし無駄に不具合を出してしまいそう、、、

なのでbower installでのファイルの保存先をproject/public/assets以下に直接してしまえばいいだけでした。

bower installの保存先を変更する

.bowerrc

{
    "directory": "../public/assets/lib"
}

上記の様な.bowerrcというファイルを作って
bower install angular-cookie
みたいな感じでインストールすると以下のような形になる

project
├── public
│   └─ assets
│    ├─ js
│    ├─ lib
│    │   └ angular-cookies #★ココに追加された
│    ├─ ・・・
├── fuel
└── nodejs # 自分で作ったフォルダ
   ├─ .bowerrc #★コレを追加してbower install
   ├─ ・・・

fulephpからassets/lib以下もパスに追加

//php
Asset::add_path('assets/lib/','js');
Asset::add_path('assets/lib/','css');

//テンプレート
echo Asset::js(array(
   "angular/angular.js",
   "angular-cookies/angular-cookies.js",
));

コレでbower installしたファイルをそのまま呼び出せるようになるので無駄の作業が少しへった
よかったよかった