SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

HTML/JavaScript開発作業を効率化する便利ツールの活用

Grunt連携や自作ライブラリ登録でパッケージ管理ツールBowerをもっと活用

HTML/JavaScript開発作業を効率化する便利ツールの活用 第4回

  • X ポスト
  • このエントリーをはてなブックマークに追加

Bowerに自作のライブラリを公開

 Bowerでは自作のライブラリを公開する仕組みが用意されています。自分のライブラリを使いやすく管理したり、世界中の開発者に自分のライブラリを公開したりできます。以下ではBowerに自作ライブラリを追加する方法を説明していきます。

今回公開するライブラリ

 今回Bowerに登録するサンプルとして、jQueryセレクタで指定した要素にCodeZine Webサイトへのリンクを挿入する簡単なjQueryプラグイン「jquery-sample-codezine-linker」を用意しました。プラグインの実装をリスト7に示します。

リスト7 今回Bowerで公開するjQueryプラグイン(jquery.sample.codezine.linker.js)
(function($){
    $.fn.codezine = function() {
        // マッチした要素それぞれに対して実行 ...(1)
        this.each(function(){
            var $this = $(this);
            // HTML内容を書き換え ...(2)
            $this.html("<a href='http://www.codezine.jp'>Go to Codezine!!</a>");
        })
    };
})(jQuery);

 処理内容はjQueryセレクタでマッチした要素のそれぞれに対して(1)、そのHTML内容を書き換える(2)ものです。リスト8のように記述して実行できます。

リスト8 プラグインを実行する処理
$(function(){
    $(".codezine").codezine();
});

 リスト8を実行すると図3のように、codezineクラスの要素に対してCodeZine Webサイトへのリンクが挿入されます。

図3 jquery-sample-codezine-linkerの実行例
図3 jquery-sample-codezine-linkerの実行例

 プラグインおよび実行用Webページのソースコードはサンプルコードに含まれています。

ライブラリ公開するためのbower.json記述

 Bowerにライブラリを公開するためには、bower.jsonファイルにライブラリの内容を記述する必要があります。今回使用するbower.jsonファイルをリスト9に示します。

リスト9 ライブラリ公開のための記述例(bower.json)
{
  "name": "jquery-sample-codezine-linker",
  "version": "1.0.0",
  "authors": [
    "Eiichi YOSHIKAWA"
  ],
  "description": "jQuery Plugin Sample for CodeZine",
  "main": "js/jquery.sample.codezine.js",
  "keywords": [
    "Bower",
    "jQuery",
    "CodeZine"
  ],
  "license": "MIT",
  "homepage": "http://codezine.jp",
  "ignore": [
    "index.html", ...除外リストに追加(1)
    "**/.*",
    "node_modules",
    "bower_components",
    "test",
    "tests"
  ],
  "dependencies": {
    "jquery": "~2.1.4" ...依存ライブラリを定義(2)
  }
}

 主な記述項目を表3に示します。なおここでは動作確認用のindex.htmlを除外リストに追加し(1)、依存ライブラリの定義としてjQueryを指定しています(2)。

表3 bower.jsonの主な記述項目
項目名 内容
name 名称
version バージョン
authors 作者
description ライブラリの説明
main ライブラリとして参照させるメインのファイル
keywords キーワード
license ライセンス形態
homepage ホームページ
ignore 公開時に除外するファイルのリスト
dependencides ライブラリが依存する他のライブラリ
devDependencies ライブラリが開発時に依存する他のライブラリ

ライブラリをGitHubに公開

 次に、bower.jsonを含めたライブラリ一式をGitHubのリポジトリにアップロードします。GitHubのWebページでリポジトリを作成後、ライブラリのフォルダでリスト10のように実行します。タグは「1.0.0」のように「<メジャーバージョン>.<マイナーバージョン>.<パッチ番号>」というSemantic Versioning型式で指定します。

リスト10 ライブラリをGitHubに登録するコマンド
# Gitリポジトリ初期化
git init
# リポジトリにファイルを追加
git add --all
#コミット
git commit -m 'Initial Commit'
#タグ
git tag 1.0.0
# リモートリポジトリ設定
git remote add origin https://github.com/<ユーザー名>/<リポジトリ名>.git
#プッシュ
git push -u origin master
#タグをプッシュ
git push --tags

ライブラリをBowerに登録

 最後にリスト11のコマンドで、ライブラリ(GitHubのリポジトリ)をBowerに登録します。

リスト11 ライブラリをBowerに登録するコマンド
#登録
bower register <ライブラリ名> git://github.com/<ユーザー名>/<リポジトリ名>.git

 Bowerから登録解除する場合は、まずbower loginコマンドを実行してGitHubアカウントでログインしてから、bower unregisterコマンドを実行します。

リスト12 ライブラリをBowerから登録解除するコマンド
#ログイン
bower login
? Username #GitHubアカウントのユーザー名を入力
? Password #GitHubアカウントのパスワードを入力

#登録解除
bower unregister <ライブラリ名>

 登録したライブラリは「bower install <ライブラリ名>」でインストールできます。

 なお今回のサンプルは「jquery-sample-codezine-linker」というライブラリ名でBowerに登録されているので、実際にリスト13のコマンドでダウンロードできます。

リスト13 jquery-sample-codezine-linkerライブラリをダウンロード
bower install jquery-sample-codezine-linker

 リスト9の(2)で依存ライブラリにjQueryを登録しているため、リスト13を実行するとjquery-sample-codezine-linkerライブラリとQueryが一緒にダウンロードされます。

図4 自作ライブラリとjQueryが一緒にダウンロードされる
図4 自作ライブラリとjQueryが一緒にダウンロードされる

まとめ

 本記事では、HTML/JavaScript開発を主なターゲットにしたパッケージ管理ツールBowerの応用的な利用法として、Grunt連携と自作ライブラリの登録について紹介しました。Gruntと連携することでライブラリのダウンロード処理をGruntタスクとして自動実行させることができます。Gruntの他のタスクとうまく組み合わせれば、環境構築などの定形作業を自動的に行えるようになります。

 自作ライブラリをBowerに登録すれば、ライブラリを世界中に公開し、他のライブラリと同じ手順でダウンロードできるようになります。自作ライブラリを公開してオープンソースコミュニティへ貢献するのもよし、そこまで大げさでなくても自分でダウンロードしやすくするためだけに公開するというのも「あり」ではないでしょうか。

参考資料

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
HTML/JavaScript開発作業を効率化する便利ツールの活用連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト  吉川 英一(ヨシカワ エイイチ)

WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS Twitter: @yyamada(公式)、@yyamada/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8956 2015/10/01 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング