Sencha Cmd Packagesで作ったpkgファイルを配布する方法

Sencha Advent Calendar 2014の22日目です。

Sencha Cmd Packagesのネタが続きます。

今回は前回作ったext-crop-imageのpkgファイルをSenchaアプリケーションで使うまでを調べたので紹介したいと思います。

nodejsでは、npm installでpackage.jsonで定義したnodeパッケージをインストールする仕組みがありますが、Senchaでも同じようなことができるようになっています。
ただそれをするには、pkgファイルを規定の場所に配置したりといくつか手順が必要ですので、順を追って説明していきたいと思います。

ローカルリポジトリにpkgファイルを追加する

pkgファイルを外部に公開する場合は、まずはローカルリポジトリにpkgファイルを追加します。
ローカルリポジトリといってもただのディレクトリで、Sencha Cmdのインストールディレクトリの下にあるrepoディレクトリがそれにあたります。

まずはローカルリポジトリを初期化します。

このコマンドを実行すると作成者の認証情報が追加されます。
認証情報はパッケージを公開する場合は必須のようです。
実行するとローカルリポジトリの.sencha/repo下に公開鍵・秘密鍵が生成されていることが確認できます。

ローカルリポジトリを初期化したら、ローカルリポジトリにpkgファイルを追加します。

実行するとローカルリポジトリのpkgsディレクトリの下に、ext-crop-imageのディレクトリが作成されていることが確認できます。

pkgファイルを公開する

pkgファイルを外部に公開してSencha Cmdで使えるようにするには、外部から参照可能なサーバにpkgファイルを配置します。
ローカルリポジトリに追加されたpkgsディレクトリをそのまま配置して下さい。
構成を崩すと、Sencha Cmdで認識してくれません。

ext-crop-imageは以下に置きました。
http://sencha-package.ispern.com/

配置したら、Sencha Cmdで外部サーバのURLを登録します。
リポジトリ名は適当な名前でOKです。

登録したらsencha package listを実行します。
sencha package listはローカルリポジトリと登録しているリモートリポジトリから利用可能なパッケージの一覧を表示するコマンドです。

ext-crop-imageがちゃんとSencha Cmd上から認識されていればOKです。

公開されているパッケージをSenchaアプリケーションで使う

パッケージをSenchaアプリケーションで使う方法は、いつも通りapp.jsonのrequireで定義します。

定義したらsencha app refresh/watch/buildのタイミングでアプリケーション内のpackagesディレクトリに自動で配置されます。

まとめ

外部公開する方法は若干面倒なので、TravisCIとか使えばもう少し楽になりそう。
外部に公開しなくても、社内で使いたいときにパッケージにして社内のサーバに置いておけば、うまくリソース共有ができそうな感じですね。
Sencha Marketで公開されているコンポーネントがインストールできるようになるといいなぁと思う次第。

明日は、sugaimasaruさんです!