ある方から教わったパッケージとパッケージマネージャーについての記録。
忘れないように整理して、書き留めておく。
パッケージとは
例えば、JavaScriptのプロジェクトでは、npm installなどのコマンドを利用して、「package.json」と「package-lock.json」に記載されたパッケージをインストールする。
しかし、これらのパッケージは他のパッケージに依存していることが多く、その依存関係が繰り返されるため、実際には非常に多くのパッケージがインストールされることになる。
その結果、インストールされたファイルの容量が数百MBに膨れ上がることもある。
GitHubを使ってコードを管理するとき、このような巨大な「node.modules」フォルダをそのままpushするのは現実的ではない。
そこで、人々は知恵を絞り「package.json」というファイルだけを共有する方法を考え出した。
「package.json」には、プロジェクトで使用するパッケージの情報が含まれていて、このファイルを基にnpm installコマンドを実行すれば、各開発者が同じパッケージをインターネットからダウンロードして自分の環境にインストールすることが出来る。
これらの仕組みを提供するのがパッケージマネージャーだ。
パッケージマネージャーとは
パッケージマネージャーは、各開発者の個人用パソコンにインストールされていて、共有された「package.json」ファイルを読み取って必要なパッケージをインストールする。
ここでいうパッケージマネージャーは、npm(Node.js)だ。
つまり、「package.json」ファイルさえあれば、「node_modules」フォルダを修正、復元できるため、巨大な容量をリポジトリで管理する必要がなくなったということ。
.gitignoreの設定
設定をしないままでは、「node_modules」フォルダはpush時にリポジトリに含まれてしまう。
そのため、「node_modulesはgitリポジトリに含めなくても良い」という指示をしておく必要がある。