blog

package.jsonとpackage-lock.json

チェックインすると、バージョン番号に記号が追加されます。あるものは挿入記号^で、あるものは波記号~です。 これは、現在のマイナーバージョンの最新バージョンに更新されます。例えば、"vue "を導入する...

Jan 6, 2021 · 2 min. read
シェア

最近、またこの作品の違いを思い出すのがあやふやになってきたので、関連する点だけ覚え直します。

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ダウンロードする。

Read next

Linuxとカスタムコマンド

linuxシステムでは、lsを押すと現在のフォルダのすべてのサブファイルが表示され、cdを押すと指定したフォルダに移動します。 次に、同様のコマンドをカスタマイズするには、新しいコマンドを作成し、そのファイル名をコマンド名として新しいファイルを作成し、実行したいコマンドを入力します。

Jan 5, 2021 · 1 min read