yarn.lock と package-lock.json ファイルをコミットする必要がありますか? 質問する

yarn.lock と package-lock.json ファイルをコミットする必要がありますか? 質問する

私たちはすべての決定論的な pkg インストールに yarn を使用していますが、ユーザーが npm を使用することを妨げていません。ただし、これらのファイルの両方があると問題が発生すると思います。.gitignore ディレクトリに 1 つ追加する必要がありますか?

ベストアンサー1

一般的に依存関係ロックファイルを常にコミットする

そのまま覆われたそれ以外の場合、多くのパッケージ管理システムでサポートされている依存関係ロックファイル(例:作曲そしてバンドラー)は、チェーンの末端のプロジェクトではコードベースにコミットされるべきであり、そのプロジェクトを実行しようとする各個人が、その通りテストされた依存関係のセット。

他のプロジェクト(より緩い依存関係が望ましい)に含まれることを意図したパッケージにロックファイルを常にコミットする必要があるかどうかは明確ではありません。しかし、そして、NPM (@Cyrille が説明しているように) はyarn.lockpackage-lock.json必要に応じてそれぞれをインテリジェントに無視し、これらのロックファイルを常に安全にコミットできるようにします。

だからあなたは少なくとも1つを常にコミットするyarn.lockか、package-lock.json使用しているパッケージ マネージャーによって異なります。

yarn.lock と package-lock.json の両方をコミットする必要がありますか?

現在、2つの異なるパッケージ管理システムがあり、どちらも同じ依存関係のセットですpackage.jsonが、2 つの異なるロックファイルを生成して読み取ります。NPM 5 は を生成しpackage-lock.json、Yarn は を生成しますyarn.lock

package-lock.jsonをコミットすると、NPM 5 を使用して依存関係をインストールするユーザーに対するサポートが組み込まれます。をコミットするとyarn.lock、Yarn を使用して依存関係をインストールするユーザーに対するサポートが組み込まれます。

コミットするyarn.lockか、package-lock.json両方を行うかは、プロジェクトの開発者が Yarn のみを使用しているか、NPM 5 のみを使用しているか、あるいはその両方を使用しているかによって異なります。プロジェクトがオープンソースである場合、最もコミュニティに優しい方法は、両方をコミットし、常に同期を保つための自動化プロセスを用意することyarn.lockですpackage-lock.json

アップデート:糸が今導入されましたコマンドimportyarn.lockファイルからファイルを生成しますpackage-lock.json。これは 2 つのファイルを同期させるのに役立ちます。(ありがとう @weakish)


この問題は、Yarn プロジェクトで詳細に議論されました。

どちらも現在は閉店しております。

おすすめ記事