最近、またこの作品の違いを思い出すのがあやふやになってきたので、関連する点だけ覚え直します。
dependencies / devDependencies
-save // package-lock.jsonは自動的に更新される。.jsonファイルの依存関係
-save-dev // 新しいモジュールをパッケージに追加したい場合は、パッケージの.jsondevDependenciesファイルの下にある
-S // これが-saveの短縮形だ。
-D // これが --save-dev だ。
package.jsonバージョン管理
package.json の dependencies/devDependencies を見ると、バージョン番号に記号 ^ か ~ が追加されているのがわかるでしょう。
波動記号:
現在のマイナーバージョンの最新版に更新されます。例えば、"vue":"~2.6.11 "を導入する場合、最新バージョンの2.6.xにマッチします。新しいバージョンの2.7.0が出た場合、自動的には更新されません。wave シンボルは、かつて npm インストールのデフォルトシンボルでしたが、現在は挿入シンボルに変更されています。
シンボルの挿入
これは、ライブラリの現在のバージョンを、現在のメジャーバージョンの最新バージョンに更新します。例えば、"vue":"^2.6.11" を導入した場合、2.x.x へのアップデートにはマッチしますが、3.0.0 へのアップデートは自動的に行われません。
package-lock.json
package-lock.jsonは、npmインストール時に生成されるファイルで、現在の状態で実際にインストールされている各npmパッケージのソースとバージョン番号を記録します。
このファイルの中には、package.json が依存しているモジュールと、そのモジュールに依存している依存関係が記録されています。各依存ファイルは、バージョン、フェッチアドレス、ハッシュ値でラベル付けされており、各インストールで同じ結果が得られるようになっています。 どのマシンにいつインストールするかは問題ではありません。
次にnpmがインストールするとき、npmはプロジェクトにpackage-lock.jsonファイルがあれば、package.jsonの代わりにpackage-lock.jsonの内容に基づいて依存関係を処理し、インストールします。
package.jsonを更新すると、モジュールのバージョンアップに伴ってpackage-lock.jsonも自動的に更新されますので、package.jsonが更新されても、package-lock.jsonは以前の問題のままです。
pmpackage-lockをサポートしていない.json
pmインストール時にはpackage-lock.jsonは生成されない。.json
pm installpackage-lock.jsonがプロジェクトにあれば、package-lock.jsonがプロジェクトになくても使える。.jsonファイルpmも認識されない。.jsonをインストールする。
だから、npmをインストールするとpackage-lock.jsonが生成されるのだ。.json,pmでpackage-lock.jsonをインストールした場合、pmはpackage-lockの対象ではないので、インストールした依存関係との整合性がとれないことがある。.json影響はパッケージ.jsonダウンロードする。