nodejsで自作別リポジトリ(gitlab/github)をモジュール化して利用するには?
プログラムを作っていて、この機能をあのプログラムでも利用したいなぁ。。。といったことはよくあるかと思います。
そういうときには、コピペしてしまうと整合性が取れなくなってあとで困ることになります。
なので、うまくgitのリポジトリで取り込めないかといろいろ調べてみたのですが、npmはちゃんと対応していました。
npm package.json 日本語版 取扱説明書
こちらに依存性のGit URL参照に記述がありました。
まとめると以下の手順になります。
モジュール側の設定
package.jsonの編集
今まであんまり意識していませんでしたが、以下の項目が大切になります。
- name
→ パッケージ名になります。ここで記述した名前を指定してrequireで読み込みます。
- private
→ trueを指定しておくと、npmに間違えて登録したりしません。
- main
→ requireで実行するソースを指定します。
最後(じゃなくてもいいけど)に「module.exports = ほげほげ」を記述します。
利用するプログラムでは、xxx = require(yyyy)とすることにより、モジュールで記述したほげほげをxxxで参照できます。
- version
→ バージョンを記述しておかないとわかりにくいでしょう。
gitlab/githubにpush
普通にpushして他からcloneできるようにしておきましょう。
利用側の設定
モジュール側を修正する場合
ファイルを修正後、package.jsonのversionを変更します。
その後、利用側で、「npm install パッケージ名」を実行します。
おわりに
モジュールする場合、共通部分を抜き出して行うのが正しい方法かとは思います。
しかし、簡単な処理の場合は全体をモジュール化して読み込んでしまうのもありかと思います。