458

yarn.lockを実行すると、Yarn はファイルを作成しますyarn install

これをリポジトリにコミットするか、無視する必要がありますか? それはなんのためですか?

4

9 に答える 9

121

プロジェクトが何であるかによって異なります。

  1. あなたのプロジェクトはアプリケーションですか? 次に:はい
  2. あなたのプロジェクトは図書館ですか?ある場合:いいえ

これに関するより詳細な説明は、Yarn の作成者の 1 人がこの GitHub の問題で見つけることができます。言います:

package.json は元の作成者が希望する意図したバージョンを記述し、yarn.lock は特定のアプリケーションの最後の既知の適切な構成を記述します。

yarn.lock最上位プロジェクトのファイルのみが使用されます。したがって、あるプロジェクトがスタンドアロンで使用され、別のプロジェクトにインストールされない限り、yarn.lock-file をコミットしても意味がありません。代わりにpackage.json、プロジェクトが期待する依存関係のバージョンを伝えるのは常に -file 次第です。

于 2016-10-23T18:01:55.727 に答える
13

私の経験から言えば、yarn.lockファイルをコミットする必要があります。これにより、他の人があなたのプロジェクトを使用するときに、プロジェクトが期待するものと同じ依存関係が得られるようになります。

ドキュメントから

yarn または yarn add を実行すると、Yarn はパッケージのルート ディレクトリ内に yarn.lock ファイルを生成します。このファイルを読んだり理解したりする必要はありません。ソース管理にチェックインするだけです。他の人が npm の代わりに Yarn を使い始めると、yarn.lock ファイルによって、あなたとまったく同じ依存関係が確実に得られます。

^に置き換えることでそれを達成できると主張する人もいるかもしれません--。はい、できますが、一般的に、ほとんどのnpmパッケージには^表記法が付属しており、静的な依存関係yarn.lockのバージョンを確保するために表記法を手動で変更する必要があることがわかっています。

また、エリック・エリオットがここで言ったように

.gitignore yarn.lock を使用しないでください。「自分のマシンで動作する」バグを回避するために、決定論的な依存関係の解決を保証するためにあります。

于 2016-12-23T20:45:53.097 に答える
7

はい、コミットする必要があります。yarn.lock ファイルの詳細については、こちらの公式ドキュメントを参照してください。

于 2018-01-20T15:11:58.610 に答える
5

はい!yarn.lock依存関係をインストールする開発者がまったく同じ出力を取得できるように、チェックインする必要があります。たとえば、[2016 年 10 月に利用可能になった] npm 使用すると、新しいバージョン (1.2.1)を実行している新しい開発者が別のバージョン (1.2.1) を取得している間に、ローカルにバージョン (1.2.0 など) をインストールできます。patchinstall

于 2016-10-12T17:22:44.497 に答える