npmを利用してライブラリを利用する機会が増えてきました。
ライブラリ名でインストールすれば便利な機能が使えちゃうので、よく理解せずに使っている感じがあります。
インストールすると、node_modulesにファイルがものすごい数でインストールされていますね。
便利便利。。。と思っていたら、色々と考える必要が出てきて困っています。
バージョン管理に含めるかどうか
現在gitでバージョン管理をしており、WindowsでSourcetreeのGUIを使っています。
さきほども書いたとおりものすごい数のファイルがダウンロードされるため、バージョン管理に含めるとかなり遅くなりました。
リリースにも影響が出たりと、運用を考える必要が出てきました。
最近のSourcetreeが遅すぎるのが一番の問題かもしれませんが、無料で使えるツールに文句を言っても仕方がないです。 普通に使う限りは、gitをGUIで使えて便利なので、重宝していますが別のツールを検討しないと仕事にならない状態です。
というわけで、世の中の運用を調べてみました。
package.jsonだけ管理
package.jsonにnpmでインストールする内容が記述されているため、これだけを管理するのが主流みたいです。
.gitignoreに「node_modules」ディレクトリを記述するみたいです。
環境によってインストールされるのが違う場合もあるみたいです。
確かにpackage.jsonだけの管理にできれば大量のファイルはバージョン管理に含めなくて良くなるため、かなりの改善にはつながるはずですね。
本当はpackage.jsonだけの管理にしたいけど、バージョンが変わって動作しなくなることを懸念しているため、舵をきれない状態です。 package.jsonにバージョンまで書けばいい。とのことだが、リポジトリが消えたりしたら、復旧できるのか心配でソースをすべてバージョン管理に含めたい衝動にかられます。
別のリポジトリとして、管理してしまったほうが安全かな。現実案な気がします
本番リリースはどうする
本番サーバーは複数台での運用のため、リリース方針にも影響が出そうです。
一応、rsyncでのデプロイしているため、npmを先に実行する必要ありそうです。
「npm update」でいいのかな。
空の状態からリリースになると時間かかりそうですね。
npm updateがどれくらい時間がかかるのか気になりますが、これが現実的かな。
困った時が変え時
遅すぎて仕事にならないため、管理方法から変えていきます。
package.jsonのみ管理するのはかなりしっくりきているため、早めに対処したいです。