- ベストアンサー
javascriptのnpmとは
npmを検索するとたくさんでてきますが、python のpip 、javaのMavenみたいな感じです、みたいな説明ですが、そもそもパッケージ管理なんて使ったことがないのでイマイチよさが分かりません。パッケージを管理しなくても困ることがないような趣味程度のプログラミングしかしていませんが、パッケージを管理すると何がいいのでしょうか? 具体的にパッケージを管理しないとこんなまずいことになるとか例えがあるでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> そのアプリはたくさんのライブラリを使用しており、どれがどれに依存していたのかも忘れたとしても、コマンドひとつで全部自動で動くようにまでしてくれるということでしょうか? > どこまでが手動で、どこまでが自動なのかがイマイチ解りません。 パッケージ管理を使ってインストールしたライブラリは、何をインストールしたかを管理するデータが作成されるので、そのデータを元にコマンド一つで復元が可能です。 各ライブラリには、そのライブラリが必要とする他のライブラリの情報が書かれたデータファイルが付属しているので、依存関係にあるライブラリが全て自動でインストールされます。 ご自身が作ったプログラムを他のマシンにインストールする際も、ご自身が作ったプログラムとライブラリの情報が書かれたデータファイルをコピーして、あとはパッケージ管理を使ってインターネット経由で必要なライブラリをインストール出来るので、ご自身で管理するプログラムは自分で作った分だけで済ませられるので、管理するプログラムの容量が小さくなるメリットもあります。
その他の回答 (1)
- t_ohta
- ベストアンサー率38% (5238/13705)
自分が書いたプログラムだけで全ての処理が完結するのであればパッケージ管理は必要ありません。 ある程度処理内容が複雑になってくると、プログラムを書いたり動作確認をする時間が多くなり開発工数を圧迫してしまいます。 そう言った場合、必要な処理を既存のライブラリを使う事で賄えるのであればコーディング、単体テストの時間を省く事が出来ます。 しかし、利用するライブラリ自体が他のライブラリに依存していたり、バージョン依存がある場合はインストール作業が面倒ですし、自分が書いたプログラムで利用したライブラリがバージョンアップで互換性が無くなった場合など依存関係が発生した場合に、特定のバージョンのライブラリをインストールして利用しなければいけなくなり管理が煩雑になってしまいます。 そう言った依存関係を含め外部ライブラリを容易にインストールしたりバージョンアップの管理等を容易にしてくれるのがパッケージ管理です。 かつては、あるプログラムを利用するために依存するライブラリを十数種類バージョンを確認しながらコツコツとインストールしたりしたモノですが、今はパッケージ管理を使えばコマンド一つでインストールできるので便利です。
補足
回答ありがとうございます。 例えば自分の作ったアプリが今まで動いていたのにいつのまにか動かなくなっていたとして、 そのアプリはたくさんのライブラリを使用しており、どれがどれに依存していたのかも忘れたとしても、コマンドひとつで全部自動で動くようにまでしてくれるということでしょうか? どこまでが手動で、どこまでが自動なのかがイマイチ解りません。