他の答えに欠けている重要な点:
パッケージマネージャーを使用するということは、使用しているライブラリバージョンを示し、構成情報が実際に正しいことを確認する構成を持つことを意味します。
使用するライブラリとバージョンを知ることは、次の場合に非常に重要です。
- 重大なバグ/セキュリティホールのためにライブラリを更新する必要があります。
- または、発表されたセキュリティホールがあなたに影響を及ぼすかどうかを確認する必要があります。
さらに、実際に更新を行うとき、パッケージマネージャーは(通常)必要に応じて推移的な依存関係が更新されるようにします。
一方、lib
フォルダーの場合は、多数の(おそらくバイナリーで、おそらく変更された)ファイルがあり、それらがどこから来たのか、どのバージョンであるのかを推測する必要があります(または正しいかどうかわからないREADMEを信頼します) )。
他のポイントに対処するには:
パッケージを管理するための外部ツールは必要ありません。
確かに、a)ソフトウェア開発者として、とにかく多くのツールをインストールする必要があるため、通常はもう1つは重要ではありません。b)通常、特定のフィールド(Maven / Gradle for Java、 JS / TypeScriptのnpmなど)、数十をインストールする必要があるわけではありません。
構築にインターネット接続は必要ありません。
私が知っているすべてのパッケージマネージャーは、必要な依存関係をダウンロードするとオフラインで動作します(プロジェクト自体をダウンロードした直後に発生する可能性があります)。
ビルドの高速化(パッケージチェックなし)。
おそらく真実ですが、オフラインパッケージのチェックにかなりの時間がかかる可能性は低いようです(一部のバージョン番号を比較するだけです)。オンラインチェックはしばらく時間がかかるかもしれませんが、必要であれば(それがデフォルトでも、オンになっている場合-例えばMavenは、リリースバージョンのアップデートをチェックしません)、それはオフにすることができます。
より単純な環境(知識が少なくて済みます)。
本当ですが、上で説明したように、lib
フォルダには知識も必要です。また、上記で説明したように、おそらくご存知のほんの一握りの異なるパッケージマネージャーでのみ作業します。