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

Umi Uyuraのブログ

Titaniumを使ったスマートフォンアプリ開発を中心に、プログラミング関連の作業ログ。

ti-deploygate-hookをnpmに公開してみた

先日、Titanium CLIでDeployGateへPUSHするための umi-uyura/ti-deploygate-hook というものを作ってみました。

umi-uyura.hatenablog.com

で、せっかくなので初めてnpmへパッケージを登録してみたので、その記録をつけておこうと思います。

前提条件

GitHubで公開していて、npm コマンドでGitHubリポジトリからインストールはできている状態からスタートしています。

$ npm install -g umi-uyura/ti-deploygate-hook

また、開発環境はMac OSを使っています。

アカウントを作った

npmに公開するためには、 npmjs.com のアカウントが必要になりますが、登録方法は2種類ありました。

  1. npm adduser コマンドを実行する
  2. 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/ へログインしてみたところ、

@umi_uyura

アカウントのページができていました。

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

と出力されて、見事、公開できましたー。

ti-deploygate-hook

これでGitHubではなくnpmの方からインストールできるようになりました。

あ、READMEなおさなきゃ…

感想

調べながらやって、だいたい1時間くらいでできました。

ひとつだと寂しいので、調子に乗って以前作った小ネタツール umi-uyura/xcode-switch についてもnpmへ登録。

xcode-switch

以上、初npm登録の巻でした。

参考