
先日初めてnpmでライブラリを公開してみました。感想としては「意外とそんなに難しくなかった」というところです。単純にGitHubでソースコードを公開するだけより、多くの人に使ってもらえそうなのはもちろんのこと、アプリのようにダウンロード数を確認できるので何より励みになります。
私はAndroidやiPhoneのアプリを個人開発して公開したことがありますが、簡単なアプリでもデザインを行ったりしているとそこそこ時間がかかります。アプリのLPサイトの用意やストアに公開するための文言もそこそこ大変です。
npmライブラリでも使い方やコピーライトなど多少の文書は必要ですがストアで公開するより楽だと感じました。また、ライブラリやコマンド開発の方が純粋にロジック部分の開発が多くなるので、実現したいことをストレートに表現できると思いました。私自身がスマホのアプリ開発に習熟できていないだけなのかもしれませんが、スマホなどのアプリ開発の場合UI部分の表現がうまくできず、ハマってしまい、調査や実験に時間を要すことが少なくなかったためです。個人的にはライブラリ開発の方がライト感がありました。

ローカルのテスト方法
ただ、やはりハマりポイントはあります。こういった開発の場合は環境設定周りにハマることが多いです。 今回はローカルのテストがやや複雑でしたので記載します。
テスト方法
1. まずはnpmのライブラリを開発します。

この時開発したライブラリが他のライブラリに依存している(dependencyにライブラリがある)場合でも、特に問題ありません。
2. 開発したディレクトリでnpm link
を実行します。

npm linkを行うことで開発で利用しているPCのみでrequireなどでモジュールとして参照できるようになります。
3.ライブラリと同じ階層でテスト用のディレクトリを作成します。

ここでtesterというディレクトリを作っています。 npm init
でテスト環境のベースも作ります。
4.ここで通常の開発であれば呼び出すライブラリをnpm installすると思いますが、npm link パッケージ名
を行います。

この場合 npm link firebase-idToken-getter
となります。これを行うとテストコード内で開発中のnpmパッケージが呼び出せます。
5.あとはパッケージのテストを行うテストコードを実行し、テストを確認するだけです。問題なければ、 npm publish
で公開すれば良いと思います。公開後は通常の開発通りに npm install パッケージ名
でテストを行うことをオススメします。
上記がテストの方法です。npmなどでライブラリを利用する時の一助となれば幸いです。公開するために参考にした他のサイトやテストの方法についても下記に記載しておきます。