bowerを使ってangularとbootstrapのウェブアプリ開発環境を秒速で整える方法
(注:mac前提で書いています。windowsのことは良くわからないです…)
急ぐ人のために
bowerとか既に入っているよ、という人は以下のコマンド(1,2)を打った後に、後ろの方についているHTML、js、cssファイルをコピーしてください。以上です。
- bower install angular-bootstrap
- bower install bootstrap
ファイル構成は、以下を想定しています。
ゆっくり解説
ここからは、秒速ではなく、1つ1つやっていきます。
流れとしては、homebrew → nodebrew → nodejsとnpm → bower → angularとbootstrapのインストールと言う流れになります。
homebrewについて
homebrewは、apple社が予め入れといてくれなかった、でも自分には必要!!、というソフトウェアのバージョン管理に使います。
今回のケースだと、nodebrewですね!
- インストール
以下のコマンドをコンソールに打ち込みます。(1行です)
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
上のコマンドは、変わっているかも知れないので、本家を確認することをオススメします。
brew.sh
nodebrew について
nodebrewは、nodejs周りのパッケージのバージョン管理ツールです。
nodejsで複数の環境を切り替えながら開発する時に便利です。
普段は、最新版を使いつつ、例えば、AWSのlambda向けの開発時には、バージョン、XX.xでと言うように使うと便利です。(多分)
- インストール
brew install nodebrew
もしくは、以下のgithubの手順でインストールします。(こちらだとhomebrew不要です。)
github.com
nodejsとnpmについて
nodejsは、サーバサイドのjavascript実行環境です。とは言いつつ便利なのでローカル環境でも使っています。
IOの非同期処理に特化しており、大量のIOを消費するような昨今のサーバにピッタリです(AWSはこれが無いと辛いです)。
npmは、nodejsで使えるライブラリ群を管理してくれます(npm install hogehogeでサクサク入るので便利です)。
- インストール
nodebrewを最新版にします。
nodebrew selfupdate
nodejsとnpmをインストールします。ここでは、バイナリでインストールしています。
(ホーム直下に、.nodebrew/srcがない場合は作成してください。)
nodebrew use latest
入ったバージョンを確認します。
nodebrew ls
バージョンを指定して使います(下のXは自分の環境に入ったバージョン番号にしてください)。
PATHを通して置かないと(bashだとexport PATH=$HOME/.nodebrew/current/bin:$PATH)して置かないと、nodeとnpmが見つからないので注意してください。
nodebrew use vX.XX.XX
もしくは、以下の本家からインストールします(この場合は、nodebrew不要です)。
Node.js
bowerについて
bowerとは、ウェブのためのパッケージ管理ソフトです。
要は、ブラウザ上でjavascriptを使ってウェブアプリを作成する際のパッケージ管理をしてくれます。
- インストール
以下のコマンドを実行します。
gオプションをつけているので、環境全体にインストールされます(嫌いな人は外しましょう)。
npm install -g bower
angularについて
angularhは、google社が提供しているウェブアプリ向けのjavascriptライブラリです。
利点をあげると以下のようになるでしょうか。
- DOMを直接操作しなくて良い。
- 流儀に則って書くだけで、ModelとViewとControllerに勝手に分かれるので、後から見てわかりやすい。
- Directiveを使うとHTMLの操作が楽
- 独自にインポート機構を持っているので、ファイルに分割する場合に気にすることが少ない。
- インストール
今回は、bootstrapと一緒に使うので、以下のコマンドを実行します。
bower install angular-bootstrap
サンプルファイル
- HTMLはコチラ (index.html)
<!DOCTYPE html> <html ng-app="app"> <head> <meta charset="utf-8" /> <link rel="stylesheet" type="text/css" href="bower_components/angular-bootstrap/ui-bootstrap-csp.css"/> <link rel="stylesheet" type="text/css" href="bower_components/bootstrap/dist/css/bootstrap.css"/> <link rel="stylesheet" type="text/css" href="css/app.css"/> <script type="text/javascript" src="bower_components/angular/angular.min.js" ></script> <script type="text/javascript" src="bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js"></script> <script type="text/javascript" src="js/app.js" ></script> </head> <body> <div class="container sample" ng-controller="ButtonsCtrl"> <div class="row"> <div class="col-lg-8"> <button type="button" class="btn btn-primary"> hello bootstrap (no action)</button> </div> <div class="col-lg-4"> <button type="button" class="btn btn-primary" ng-click="click_btn()"> hello angular</button> </div> </div> </div> </body> </html>
- jsファイルはこちら (js/app.js)
ui.bootstrapのライブラリを読み込んで使っています。
"app"と言うモジュールにしていますが、ここは適宜変更してください(変更した場合は、html側の修正もお忘れなく)。
"ButtonsCtrl"も同様です。
angular.module('app', ['ui.bootstrap']) .controller('ButtonsCtrl', ['$scope',function($scope) { $scope.click_btn = function() { alert("DONE!") } }]);
ぶっちゃけ無くても動きます。
div.sample { margin-top : 30px; }