を初めて使用するcomposerので、 と の違いを知りたいrequireですrequire-dev。composer の Web サイトでは、これら 2 つの違いについて適切な説明が提供されていません。
私が得られない部分はLists packages required for developing this package, or running tests, etc.、Composer Official Docs からのものです。
を初めて使用するcomposerので、 と の違いを知りたいrequireですrequire-dev。composer の Web サイトでは、これら 2 つの違いについて適切な説明が提供されていません。
私が得られない部分はLists packages required for developing this package, or running tests, etc.、Composer Official Docs からのものです。
require-devパッケージは、プロジェクトが機能するために必要ではないパッケージであり、プロジェクトの運用バージョンに含めるべきではありません。
通常、これらはphpunit/phpunit開発中にのみ使用するようなパッケージです。
私には明らかです:
必要とする
このパッケージに必要なパッケージを一覧表示します。これらの要件が満たされない限り、パッケージはインストールされません。
require-dev (ルートのみ)
このパッケージ (1)
--devの開発、またはテストの実行などに必要なパッケージを一覧表示します。ルート パッケージの開発要件は、 install を使用して実行する場合、または update を使用せずに実行する場合にのみインストールされます--no-dev。
http://getcomposer.org/doc/04-schema.md
1. パッケージの開発に使用されるパッケージ
重要な違いは、Composer がrequire-dev「ルート パッケージ」 (実行するディレクトリ) の依存関係のみをインストールすることですcomposer install。ドキュメントでは、これを次のように説明しています。
ルート パッケージは、
composer.jsonプロジェクトのルートで によって定義されたパッケージです。composer.jsonプロジェクトの要件を定義するのはメインです。
…そしてrequire-devドキュメントはそれが「ルートのみ」であることを指定しています。
実際には、これはrequire-dev、パッケージが他の何かの依存関係としてインストールされている場合 (つまり、別のプロジェクトのvendorフォルダーにインストールされている場合)、パッケージの依存関係が使用されないことを意味します。
したがって、 YourProject のリストにある場合、 YourProjectphpunitのrequire-devクローンを作成してディレクトリで実行すると、Composer は にインストールされます。開発の一環として、おそらくYourProjectのテスト スイートを実行したいと思うでしょう。そのためには.composer installyourproject/phpunityourproject/vendor/phpunit
ただし、YourProjectをMyProjectの依存関係として追加すると、myprojectパッケージをインストールするとパッケージもインストールyourprojectされますが、インストールされませんphpunit。
およびオプションを使用してこの動作をオーバーライドできますが、デフォルトの動作は、関係するパッケージがルート パッケージであるかどうかに基づいています。--dev--no-dev