0

私は 3 つの別々のプロジェクト (P1、P2、P3 など) をそれぞれ作曲家のセットアップで持っています。

P1 は P2 の一部を必要とし、P2 は P3 の一部を必要とします。これにより、P1 内のコンポーザーが P3 を要求するように強制されます。P3 のコードは P1 には必要ないため、この依存関係を削除する方法はありますか? コンポーザーの外で削除する以外。

P3 をrequire-devP1 composer ファイル内のように設定してから、実行--no-dev時にフラグを設定しようとcomposer install/updateしましたが、P2 の要件のために、まだベンダーを追加していると思います。

4

1 に答える 1

0

P3 が P1 のベンダー ディレクトリに表示されることを回避することはできません。それがコンポーザーの仕組みです。

P1 が使用する P2 のパーツは、P3 の内部にあるものを何も使用しない可能性がありますが、それは問題ではありません。P2 が動作するには P3 が必要であると述べている限り、P2 を必要とするプロジェクトには P3 も含まれます。

なぜあなたは P3 を要求することを強制されていると述べているのだろうか. これが当てはまる唯一の理由は、packagist.org 経由で公開したくないため、コードを含むリポジトリにも名前を付ける場合です。

しかし、これは真実の半分にすぎません。P3 を要求する必要はありません。最終的に必要になるすべてのコードを含むすべてのリポジトリを指定するだけで済みます。

ライブラリ モジュールにプライベート リポジトリの膨大なリストを含めるのをやめたい場合は、Satisをご覧になることをお勧めします。これは、すべてのリポジトリのパッケージ リストを作成できるスクリプトであり、使用する可能性のあるすべてのリポジトリではなく、作成された package.json ファイルの場所を指定するだけで済みます。ただし、Satis に新しいリポジトリを追加する方法を考える必要がありますが、それを行う必要があるのは 1 回だけです。

于 2013-08-29T23:07:55.917 に答える