- 更新日: 2015年1月28日
- jQuery & JavaScript
Bowerの使い方、JavaScriptパッケージの管理〜基本操作
昨日の JavaScript Lemmatizer リリースの際に、JavaScript ライブラリのパッケージ管理に Bower を使ってみました。とりあえず使うだけならとても簡単で、Ruby/Rails で Bundler での gem 管理等に慣れていれば、すぐわかると思います。
Bower に関しては、とにかく以下の記事が分かりやすくて大変助かりました。ほんと感謝です。
Bower入門(基礎編) – from scratch
Bower入門(応用編) – from scratch
Bower のインストール
まず node.js を homebrew でインストール。
1 2 3 |
$ brew install node.js |
続いて npm で bower インストール。
1 2 3 4 5 |
$ npm install bower -g /usr/local/bin/bower -> /usr/local/lib/node_modules/bower/bin/bower ... |
-g オプションは、bower をグローバルにインストールするためのオプション。
バージョン確認。
1 2 3 4 5 6 7 8 |
$ node -v v0.10.28 $ npm -v 2.4.1 $ bower -v 1.3.12 |
Bower の設定情報をセットアップ
とりあえず初回ということで、test ディレクトリを作成して試してみました。bower init コマンドで、ディレクトリの bower 初期化。質問が続くので、1個ずつ答えていきます。
1 2 3 4 5 6 7 8 9 10 |
$ mkdir test $ cd test $ bower init [?] May bower anonymously report usage statistics to improve the tool over time? No [?] name: first_app [?] version: 0.0.1 [?] description: first app [?] main file: first_app.js |
この辺りまでは問題ない感じですかね。アプリ名やバージョンとか、main file はとりあえず適当に。
1 2 3 4 5 6 7 8 |
[?] what types of modules does this package expose? (Press <space> to select) ❯⬡ amd ⬡ es6 ⬡ globals ⬡ node ⬡ yui |
what types of ~ の質問はチェックなしで Enter。
続いて author や license 設定など。
1 2 3 4 5 6 7 8 9 |
[?] keywords: first, app [?] authors: (Takafumi Yamano <*****@example.com>) [?] license: MIT [?] homepage: [?] set currently installed components as dependencies?: Yes [?] add commonly ignored files to ignore list?: Yes [?] would you like to mark this package as private which prevents it from being accidentally published to the registry?: Yes |
以上のように回答して、最後に設定内容の確認です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
{ name: 'first_app', version: '0.0.1', authors: [ 'Takafumi Yamano <*****@example.com>' ], description: 'first app', main: 'first_app.js', keywords: [ 'first', 'app' ], license: 'MIT', private: true, ignore: [ '**/.*', 'node_modules', 'bower_components', 'test', 'tests' ] } [?] Looks good?: Yes |
以上で bower.json が生成され、確認した内容がそのまま bower.json の中身となります。
1 2 3 4 |
$ ls bower.json |
jQuery をインストールしてみる
試しに jQuery をインストール。名前だけ指定すると最新バージョンのパッケージをインストールします。パッケージは、bower_components ディレクトリにインストールされます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
$ bower install jquery $ tree -L 4 . ├── bower.json └── bower_components └── jquery ├── MIT-LICENSE.txt ├── bower.json ├── dist │ ├── jquery.js │ ├── jquery.min.js │ └── jquery.min.map └── src ├── ajax ├── ajax.js ... |
bower_components/jquery/dist/jquery.min.js を script src=”” に設定してやるとインストールした jquery を読み込める。src での指定がちょっと面倒臭い気がしますけれど、Rails のマニフェストファイルのような仕組みはないっぽい。
バージョンを指定してインストールするには、次のようにする。
1 2 3 |
$ bower install jquery#1.11.2 |
依存関係を bower.json に明記してインストールするには、–save オプションを使う。
1 2 3 4 |
$ bower install jquery --save $ bower install underscore --save |
以下のように dependencies が記録されます。
bower.json
1 2 3 4 |
"dependencies": { "jquery": "~2.1.3", "underscore": "~1.7.0" } |
テストフレームワークなどは開発環境だけ必要なので、–save-dev オプションを付ける。
1 2 3 |
$ bower install qunit --save-dev |
すると以下のように devDependencies が記録される。
bower.json
1 2 3 |
"devDependencies": { "qunit": "~1.*.*" } |
本番環境でインストールを行う場合、–production オプションをつけると、この devDependencies に指定されたライブラリはインストールされません。
1 2 3 |
$ bower install --production |
なるほど、dependencies や devDependencies の情報を元に環境ごとにインストール対象をコントロールして、ライブラリのインストールを行えるわけです。
その他 bower のコマンド
インストール済みのライブラリを確認。
1 2 3 |
$ bower list |
ライブラリをサーチ。
1 2 3 |
$ bower search jquery |
ライブラリのバージョンなど情報を確認。
1 2 3 |
$ bower info jquery |
ライブラリを(jquery)をアンインストール。
1 2 3 |
$ bower uninstall jquery |
–save, –save-dev オプションをつけて uninstall すると、bower.json の依存の記録も削除されます。
以上ですが、Bower はとてもシンプルで JavaScript のパッケージを楽に管理できますね。Rails 用の bower-rails という gem もあるそうなので、Rails ではそれを使ってみようと思います。
bower-rails
Railsで外部JavaScriptライブラリなどのAssetを管理するなら、bower-railsが便利 | mah365
- jQuery & JavaScript の関連記事
- React.js用にESLintをインストールして設定、JavaScriptコードを楽に検証しよう
- JavaScriptでHTMLコメント要素を取得する
- YahooのJavaScriptマップAPI(YOLP)で地図を描画
- HTML5のGeolocation APIで現在地の位置情報(緯度/経度)を取得するJavaScriptコード
- JavaScriptでキャメルケースを単語に分割
- Browserify + GulpでクライアントのJavaScript / CoffeeScriptでrequire
- JavaScript/jQueryでDOM要素が存在するか確認する方法
- JavaScriptでスクロールを一時的に止める
- JavaScriptでcapitalize、アルファベット一文字目を大文字にする
- JavaScriptでrangeオブジェクトから座標を取得するコード
Leave Your Message!