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

@Satoh_D no blog

大分にUターンしたので記念に。調べたこととか作ったこととか食べたこととか

作成したjQueryプラグインをBowerに登録してみる

regular jquery plugin bower

先日jQuery Hovercapを公開したところ、
GithubのIssueに「Bowerに登録はしてないの?」的なことを聞かれました。
よい機会なので勉強がてらBowerに登録してみました。

この記事は下記の環境にて実行しています。
別のバージョンでは記述が違うかもしれません。

  • Bower 1.3.9

Bowerとは

Twitterが作成したパッケージマネージャです。
Node.jsでいうnpm、Rubyでいうgemみたいなものです。
Bowerに登録することで、コマンドラインからパッケージをダウンロードすることが出来るようになります。

Bowerをインストールする

Bowerに登録する前に、まずはBower自体をインストールします。
Bowerはnpmからインストールできます。

npm install -g bower

bower.jsonを作成する

bower.jsonを作成します。 これは、登録する情報を書いた説明書みたいなものです。
書式は以下のとおりです。

{
  "name": "プロジェクト名",
  "version": "githubのバージョン用タグ",
  "main": "登録するファイル",
  "ignore": [
    "インストールさせないファイル",
    "必要ではないファイル(README.md等)を配列形式で記述する"
  ],
  "keywords": [
    "パッケージのタグ"
  ]
  "dependencies": {
    // 依存しているライブラリ等があれば書く
    "ライブラリ名": "バージョン情報"
  },
  "devDependencies": {
    // 開発に必要なパッケージ
    "テスト用フレームワーク等の名前": "バージョン情報"
  }
}

今回はこのように作成しました。

{
  "name": "hover-cap",
  "version": "1.0.0",
  "main": "jquery.hovercap.js",
  "ignore": [
    "demo",
    "README.md",
    "LICENSE"
  ],
  "dependencies": {
    "jquery": "~1.8.0"
  }
}

登録したいプラグインリポジトリにタグを付ける

Bowerに登録する際、git上でバージョンのタグが付いていることが必須です。
タグをつけていない場合はタグを付けておきましょう。
ちなみに、バージョンの書式はSemantic Versioning 2.0.0に則っている必要があります。 あと、bower.jsonに記述したバージョンと合わせておいてください。 今回はbower.jsonから1.0.0というタグを付けておきました。

git tag 1.0.0
git push origin 1.0.0

これでBowerに登録する準備が出来ました。

Bowerに登録する

Bowerへの登録は以下のコマンドを打ちます。

bower register ライブラリの名前 GithubリポジトリURL

今回は"hovercap"という名前で登録したので、以下の様になります。

bower register hoverCap git@github.com:Satoh-D/jquery-hovercap.git

このとき、ライブラリの名前をキャメルケースにするとエラーが出るようです。
全て小文字もしくは単語をハイフンで繋ぐといいかもしれません。
参考記事: javascript - Unable to register Bower package: EINVFORMAT - Stack Overflow

Package hovercap registered successfully!
All valid semver tags on git://github.com/Satoh-D/jquery-hovercap.git will be available as versions.
To publish a new version, just release a valid semver tag.

Run bower info hovercap to list the available versions.

このようなメッセージが出たら登録完了です。
ライブラリ名の命名規則で凄いハマりましたがなんとか無事に登録出来ました。

今回参考にしたページ