NPM を最新バージョン (3.X から 5.2.0) に更新し、npm install
既存のプロジェクトで実行すると、自動作成されたpackage-lock.json
ファイルが得られます。
package-lock.json
とは対照的に、正確な依存関係ツリーが得られることがわかりますpackage.json
。
package.json
その情報だけを見ると、それは冗長であり、もう必要ないように思えます。
NPM が動作するには両方必要ですか?ファイル
のみを使用しても安全ですか、または可能ですかpackage-lock.json
?
package-lock.jsonのドキュメント(ドキュメント1、ドキュメント2)ではそのことについては何も言及されていません。
編集:
さらに考えた結果、誰かがあなたのプロジェクトを古いバージョンのNPM(5.xより前)で使用したい場合、依存関係はすべてインストールされるが、精度の低いバージョン(パッチバージョン)になるという結論に達しました。
ベストアンサー1
package-lock.json
と の両方が必要ですかpackage.json
?いいえ。
が必要ですかpackage.json
?はい。
だけのプロジェクトは可能ですかpackage-lock.json
?いいえ。
はpackage.json
、プロジェクトのプロパティ、説明、作成者とライセンス情報、スクリプトなどの定義など、依存関係以外の目的にも使用されます。 は、package-lock.json
依存関係を特定のバージョン番号にロックするためにのみ使用されます。