Bower メモ

  • 6
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

Bower とは?

Bower
twitter社が作ったフロントエンド用のパッケージ管理ツールで、jquery/angularjs/reactなどのJSライブラリやbootstrapなどのCSSライブラリの管理を行えます。

インストール

bower のインストールは、npm から行えます。

$ sudo npm -g install bower
/usr/local/bin/bower -> /usr/local/lib/node_modules/bower/bin/bower
/usr/local/lib
└── bower@1.7.9 

$ bower -v
1.7.9
$

bower help

bower はサブコマンドで様々な操作を行うことができます。
bower helpでサブコマンド一覧を表示できます。

$ bower help

Usage:

    bower <command> [<args>] [<options>]
Commands:

    cache                   Manage bower cache
    help                    Display help information about Bower
    home                    Opens a package homepage into your favorite browser
    info                    Info of a particular package
    init                    Interactively create a bower.json file
    install                 Install a package locally
    link                    Symlink a package folder
    list                    List local packages - and possible updates
    login                   Authenticate with GitHub and store credentials
    lookup                  Look up a package URL by name
    prune                   Removes local extraneous packages
    register                Register a package
    search                  Search for a package by name
    update                  Update a local package
    uninstall               Remove a local package
    unregister              Remove a package from the registry
    version                 Bump a package version
Options:

    -f, --force             Makes various commands more forceful
    -j, --json              Output consumable JSON
    -l, --loglevel          What level of logs to report
    -o, --offline           Do not hit the network
    -q, --quiet             Only output important information
    -s, --silent            Do not output anything, besides errors
    -V, --verbose           Makes output more verbose
    --allow-root            Allows running commands as root
    -v, --version           Output Bower version
    --no-color              Disable colors
See 'bower help <command>' for more information on a specific command.

bower help サブコマンド でサブコマンドのヘルプが見れます。

$ bower help init

Usage:

    bower init [<options>]

Options:

    -h, --help              Show this help message
    Additionally all global options listed in 'bower help' are available

Description:

    Creates a bower.json file based on answers to questions.

bower init

アプリケーションで使うライブラリや依存関係を記述した bower.json を作成します。
bower init するといくつか質問されるので、答えていくと bower.json が作られます。

質問 デフォルト 説明
name ディレクトリ名 ライブラリの名前
description ライブラリの説明
main file ライブラリのエンドポイント
keywords
authors ユーザー名 作成者
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? No
$ mkdir bower
$ cd bower/
$
$ bower init
? name bower
? description 
? main file 
? keywords 
? authors ymaru
? license MIT
? homepage 
? set currently installed components as dependencies? Yes
? would you like to mark this package as private which prevents it from being accidentally published to the registry? No
cidentally published to the registry? (y/N) 
{
  name: 'bower',
  authors: [
    'ymaru'
  ],
  description: '',
  main: '',
  license: 'MIT',
  homepage: '',
  ignore: [
    '**/.*',
    'node_modules',
    'bower_components',
    'test',
    'tests'
  ]
}

? Looks good? Yes
$ ls
bower.json

bower install

ライブラリをインストールします。

$ $ bower install jquery --save
bower not-cached    https://github.com/jquery/jquery-dist.git#*
bower resolve       https://github.com/jquery/jquery-dist.git#*
bower checkout      jquery#3.1.0
bower progress      jquery#* Receiving objects:  19% (27/141)
bower progress      jquery#* Receiving objects:  20% (29/141)
bower progress      jquery#* Receiving objects:  21% (30/141)
bower progress      jquery#* Receiving objects:  21% (31/141), 52.00 KiB | 22.00 KiB/s
bower progress      jquery#* Receiving objects:  23% (33/141), 116.00 KiB | 35.00 KiB/s
bower progress      jquery#* Receiving objects:  24% (34/141), 116.00 KiB | 35.00 KiB/s
bower progress      jquery#* Receiving objects:  24% (35/141), 132.00 KiB | 33.00 KiB/s
bower progress      jquery#* Receiving objects:  26% (37/141), 172.00 KiB | 37.00 KiB/s
bower progress      jquery#* Receiving objects:  26% (37/141), 188.00 KiB | 35.00 KiB/s
bower progress      jquery#* Receiving objects:  26% (37/141), 204.00 KiB | 30.00 KiB/s
bower progress      jquery#* Receiving objects:  26% (37/141), 220.00 KiB | 26.00 KiB/s
bower progress      jquery#* Receiving objects:  26% (37/141), 228.00 KiB | 17.00 KiB/s
bower progress      jquery#* Receiving objects:  27% (39/141), 236.00 KiB | 16.00 KiB/s
bower progress      jquery#* Receiving objects:  27% (39/141), 260.00 KiB | 14.00 KiB/s
bower progress      jquery#* Receiving objects:  31% (44/141), 268.00 KiB | 13.00 KiB/s
bower progress      jquery#* Receiving objects:  45% (64/141), 284.00 KiB | 12.00 KiB/s
bower progress      jquery#* Receiving objects:  63% (89/141), 316.00 KiB | 14.00 KiB/s
bower resolved      https://github.com/jquery/jquery-dist.git#3.1.0
bower install       jquery#3.1.0

jquery#3.1.0 bower_components/jquery

インストールしたライブラリは bower_components 配下に保存されます。
※パスは以下に記載している .bowerrc で変更できます。

$ find bower_components -type f 
bower_components/jquery/.bower.json
bower_components/jquery/AUTHORS.txt
bower_components/jquery/bower.json
bower_components/jquery/dist/core.js
bower_components/jquery/dist/jquery.js
bower_components/jquery/dist/jquery.min.js
bower_components/jquery/dist/jquery.min.map
bower_components/jquery/dist/jquery.slim.js
bower_components/jquery/dist/jquery.slim.min.js
bower_components/jquery/dist/jquery.slim.min.map
bower_components/jquery/external/sizzle/dist/sizzle.js
bower_components/jquery/external/sizzle/dist/sizzle.min.js
bower_components/jquery/external/sizzle/dist/sizzle.min.map
bower_components/jquery/external/sizzle/LICENSE.txt
bower_components/jquery/LICENSE.txt
bower_components/jquery/README.md
… 略 …
$

--save を付けると bower.json に依存関係が記述されます。
別環境に依存関係のファイルをインストールする場合、bower.json があれば、
bower install するだけで依存関係のファイルをすべてインストールしてくれます。

$ cat bower.json
{
  "name": "bower",
  "authors": [
    "ymaru"
  ],
  "description": "",
  "main": "",
  "license": "MIT",
  "homepage": "",
  "ignore": [
    "**/.*",
    "node_modules",
    "bower_components",
    "test",
    "tests"
  ],
  "dependencies": {
    "jquery": "^3.1.0"
  }
}

bower install jquery だと、最新版がインストールされます。
bower install jquery#1 で、v1 系の最新版がインストールされます。

bower list

インストールしているライブラリの一覧を表示します。

$ bower list
bower check-new     Checking for new versions of the project dependencies...
bower /Users/ymaru/bower
└── jquery#3.1.0
$

bower info

ライブラリのバージョンや情報を表示します。

$ bower info jquery
bower cached        https://github.com/jquery/jquery-dist.git#3.1.0
bower validate      3.1.0 against https://github.com/jquery/jquery-dist.git#*

{
  name: 'jquery',
  main: 'dist/jquery.js',
  license: 'MIT',
  ignore: [
    'package.json'
  ],
  keywords: [
    'jquery',
    'javascript',
    'browser',
    'library'
  ],
  homepage: 'https://github.com/jquery/jquery-dist',
  version: '3.1.0'
}

Available versions:
  - 3.1.0
  - 3.0.0
  - 2.2.4
  - 2.2.3
  - 2.2.2
  - 2.2.1
  - 2.2.0
  - 2.1.4
  - 2.1.3
  - 2.1.2
  - 2.1.1
  - 2.1.0
  - 2.0.3
  - 2.0.2
  - 2.0.1
  - 2.0.0
  - 1.12.4
  - 1.12.3
  - 1.12.2
  - 1.12.1
  - 1.12.0
  - 1.11.3
  - 1.11.2
  - 1.11.1
  - 1.11.0
  - 1.10.2
  - 1.10.1
  - 1.10.0
  - 1.9.1
  - 1.9.0
  - 1.8.3
  - 1.8.2
  - 1.8.1
  - 1.8.0
  - 1.7.2
  - 1.7.1
  - 1.7.0
  - 1.6.4
  - 1.6.3
  - 1.6.2
  - 1.6.1
  - 1.6.0
  - 1.5.2
  - 1.5.1
  - 1.5.0
  - 1.4.4
  - 1.4.3
  - 1.4.2
  - 1.4.1
  - 1.4.0
  - 1.3.2
  - 1.3.1
  - 1.3.0
  - 1.2.6
  - 1.2.5
  - 1.2.4
  - 1.2.3
  - 1.2.2
  - 1.2.1
  - 1.1.4
  - 1.1.3
  - 1.1.2
  - 1.1.1
  - 1.0.4
  - 1.0.3
  - 1.0.2
  - 1.0.1

Show 22 additional prereleases with ‘bower info jquery --verbose’
You can request info for a specific version with 'bower info jquery#<version>'
$

bower uninstall

ライブラリをアンインストールします。

$ bower uninstall jquery --save
bower uninstall     jquery
$

.bowerrc

bower.json と同じディレクトリに .bowerrc というファイルがあると bower の設定ができます。
proxyの設定や bower_componentsのパスなどを変更できます。

$cat .bowerrc
{
  "cwd": "~/.my-project",
  "directory": "bower_components",
  "registry": "https://bower.herokuapp.com",
  "shorthand-resolver": "git://github.com//.git",
  "proxy": "http://proxy.local",
  "https-proxy": "http://proxy.local",
  "ca": "/var/certificate.pem",
  "color": true,
  "timeout": 60000,
  "save": true,
  "save-exact": true,
  "strict-ssl": true,
  "storage": {
    "packages" : "~/.bower/packages",
    "registry" : "~/.bower/registry",
    "links" : "~/.bower/links"
  },
  "interactive": true,
  "resolvers": [
    "mercurial-bower-resolver"
  ],
  "shallowCloneHosts": [
    "myGitHost.example.com"
  ],
  "scripts": {
    "preinstall": "",
    "postinstall": "",
    "preuninstall": ""
  },
  "ignoredDependencies": [
    "jquery"
  ]
}
$

参考