前提知識: package.json と package-lock.json の基本的な知識と使用法を理解する必要があります。この記事を参照してください。
npm に依存するインストールのロジックと順序については、この記事を参照してください。
理論を読んだ後、実際のプロジェクトを見てみましょう。上記の記事で説明したロジックは、npm インストール後の package-lock.json ファイルに表示されます。
予備知識
1. npm2 と npm3 の違いは何ですか?
あはは、あまり考えないでください。これは実際には npm のバージョン番号です。npm2 は npm の 2.xx バージョン、npm3 は npm の 3.xx バージョンです。npm2 から npm3 への大きな変更があります。上記の記事で述べたように、2 -> 3 は非常に重要な境界線であるため、コアのロジックはあまり変わっていないため、npm4、npm5 などはあまり見られません。 . .
npm と node のバージョンは両方に対応しています。nodeの公式 Web サイトを参照してください。私たちのプロジェクトでは、node のバージョンについてよく話題になりますので、npm のバージョンに詳しくないのは普通のことです。
さて、package-lock.json ファイルの研究を続けましょう。公式ドキュメントをご覧ください
npm のバージョンごとにロック ファイルの特定のフィールドは異なりますが、似ており、キー [依存関係] の意味と構造を知ることができます。
プロジェクト package.json 内にパッケージが 1 つだけあり、このパッケージにサブ依存関係がないと仮定すると、インストール後は非常に簡単です。
vue パッケージなどの複雑なものを見てみましょう。
一つずつ簡単に見ていきましょう
1 つ目は、サブ依存関係のないパッケージです。これはインストールするのが明らかです。
2 番目のタイプは、サブ依存関係を持つ @vue/compiler-dom です。これは、サブ依存関係 [例: @vue/compiler-core] を削除し、それらを @vue/compiler-dom と同じレベルに置きます。上記の記事npm2 に対する npm3の最適化により、同じ依存関係の繰り返しのインストールが回避されます。なんともシンプルですね。
まとめると、公式ドキュメントを読めるようになる必要があります、例えば、nodeやnpmの公式サイトには馴染みのない知識が多く含まれているため、英語版の公式サイトに注意してください。
Node.js Node.js® は、Chrome の V8 JavaScript エンジン上に構築された JavaScript ランタイムです。https://nodejs.org/en npm Docs npm レジストリ、Web サイト、コマンドライン インターフェイスのドキュメントhttps://docs.npmjs.com/