ti-deploygate-hookをnpmに公開してみた
先日、Titanium CLIでDeployGateへPUSHするための umi-uyura/ti-deploygate-hook というものを作ってみました。
で、せっかくなので初めてnpmへパッケージを登録してみたので、その記録をつけておこうと思います。
前提条件
GitHubで公開していて、npm
コマンドでGitHubリポジトリからインストールはできている状態からスタートしています。
$ npm install -g umi-uyura/ti-deploygate-hook
また、開発環境はMac OSを使っています。
アカウントを作った
npmに公開するためには、 npmjs.com のアカウントが必要になりますが、登録方法は2種類ありました。
npm adduser
コマンドを実行する- https://www.npmjs.com/ でsignupする
簡単そうだったので、1.の方法にしました。
コマンドを実行するとユーザー名、パスワード、メールアドレスの入力を求められます。
$ npm adduser Username: Umi Uyura npm WARN Username must be lowercase Username: umi uyura npm WARN Username may not contain non-url-safe chars
ユーザー名は小文字で、URLセーフではない文字は使えないようです。
$ npm adduser ... Username: umi_uyura Password: Email: (this IS public) **********@gmail.com
メールアドレスは公開されるもののようですね。
メールアドレスは入力すると、コマンドは終了しました。
ちゃんとアカウントが作成されたのか心配でしたが、ホームディレクトリに ~/.npmrc が作成されていて、何やら入力した情報が記載されていたのと、
//registry.npmjs.org/:_password=********** //registry.npmjs.org/:username=umi_uyura //registry.npmjs.org/:email=**********@gmail.com //registry.npmjs.org/:always-auth=false
https://www.npmjs.com/ へログインしてみたところ、
アカウントのページができていました。
2.の方法などで、すでにアカウントを持っている場合は、 npm login
を実行することで認証することができるようです。
package.jsonを用意した
公開に必要な package.json を用意します。
と言っても、今回私がプラグインを作る際に使った ひな形 には package.json のベースも含まれていて、さらにGitHubから npm
でインストールできるようにするために、すでにそれを編集したものがありました。
もし新規で作っている場合などは、 npm init
を実行することで、 package.json のひな形が生成できます。
.npmignoreを作った
npmへ公開するにあたって1つ懸念点だったのが、プロジェクトローカルにインストールする用に用意したZIPファイルの存在でした。
npm install
するときに、このZIPファイルも含まれてしまうと、転送量が多くなってしまいます。
こういった場合は、 .gitignore ならぬ .npmignore を用意しておくことで、npmリポジトリへ登録されるファイル群から除外することができるようです。
細かすぎて伝わらない package.json 小ネタ三選 - t-wadaのブログ では、 package.json のfilesフィールドを使用したホワイトリスト方式が推奨されているとのことでしたが、除外するものが明確ということもあり、今回は .npmignore を使うことにしました。
ついでに、 appcelerator/titanium-cli-plugin-boilerplate に付属していたパッケージング用の build.js も実際に使うときには不要なので、同じく .npmignore に登録しておくことにしました。
build.js *.zip
.gitignore の内容に上記を加えて、 .npmignore としました。
npmへ公開した
上記までの準備が完了後、プロジェクトのルートで、
$ npm publish
を実行。
$ npm publish + ti-deploygate-hook@0.1.1
と出力されて、見事、公開できましたー。
これでGitHubではなくnpmの方からインストールできるようになりました。
あ、READMEなおさなきゃ…
感想
調べながらやって、だいたい1時間くらいでできました。
ひとつだと寂しいので、調子に乗って以前作った小ネタツール umi-uyura/xcode-switch についてもnpmへ登録。
以上、初npm登録の巻でした。