web-dev-qa-db-ja.com

composerにライブラリを強制的に再インストールさせる方法は?

ZF2スケルトンアプリを使用していますが、外部ライブラリがgitにコミットされるのを防ぐ.gitignoreがあります。デバッグ中は、ライブラリのソースをあちこちで変更して、物事の仕組みを学びたいです。これらがバージョン管理されている場合、元の状態に戻すのは非常に簡単です。

Composerに特定のフレームワークを強制的に再インストールさせて、変更されていない新しいコピーを再度取得するにはどうすればよいですか?

PS:.gitignoreファイルは理由があるため、削除しないでください。サードパーティのライブラリがアプリのリポジトリに入らないようにします。自動展開時にいつでもインストールできます。

77
Julian

composerの--prefer-sourceフラグを使用して、VCS情報(利用可能な場合)を含む外部パッケージをチェックアウトできます。単純に元の状態に戻すことができます。また、composer updateコマンドを発行すると、composerはローカルで行った変更を検出し、それらを破棄するかどうかを尋ねます。

.gitignoreファイルはルートプロジェクト(ZF2スケルトン)に関連しており、ベンダーdir(サードパーティのライブラリがある)が独自のVCSにコミットするのを防ぎます。無視ファイルは、ベンダーのgitリポジトリとは無関係です。

45
Bram Gerritsen

ベンダーフォルダをクリアするだけです

rm -rf vendor/*
140
Zoran

私がしたこと:

  1. その特定のライブラリのフォルダを削除しました
  2. composer update --prefer-source vendor/library-name

Git repoとともにライブラリを再度フェッチします

20
Attila Fulop

vendor/ディレクトリ内のすべてのパッケージを削除したくなかったので、次のようにしました。

  1. rm -rf vendor/package-i-messed-up
  2. composer installもう一度
17
Yerke

依存関係を再インストールします。 Linuxでベンダーフォルダーを(手動で)削除するか、rmコマンドを使用して(プロジェクトフォルダーにいる場合は必ず)削除します。

rm -rf vendor/

composer update -v

https://www.dev-metal.com/composer-problems-try-full-reset/

1

ユーザー@aaracrrが別の回答のコメントで指摘したように、おそらく最良の回答は、同じバージョン制約でパッケージを再要求することです。

すなわち。

composer require vendor/package

またはバージョン制約を指定する

composer require vendor/package:^1.0.0
1
frederickjh