web-dev-qa-db-ja.com

特定のパッケージを更新しないでください

composer composer updateを実行するたびに、特定のパッケージを無視してほしいことを伝える方法はありますか?

21
chris_so

実際、composerに特定のパッケージを更新から除外するように指示する方法があるかどうかはわかりませんが、更新するパッケージを指定することはできます。

composer update <package> <package2>; // or
php composer.phar update <package> <package2>;

例えば、

composer update foo/package1 bar/package2; // or
php composer.phar update foo/package1 bar/package2;

また、自分でcomposer.json(インストール後に削除)にリストしないと、リストに明記しない限り更新されないと思います。

Composerから:1つの依存関係のみをインストールまたは更新する場合は、それらをホワイトリストに登録できます。

$ php composer.phar update monolog/monolog [...]

このリンクを確認してください そして 作曲家 も確認してください。

更新:(インターネット上で見つかりましたがテストされていません)

これを行うには、composer.lockからパッケージを削除するだけです。

6
The Alpha

無視しようとしているパッケージに必要なバージョンを指定することを検討しましたか?例えば:

"require": {
    "some/package": "~1.2"
}

バージョン> = 1.2、<2.0と言っているため、これは更新される可能性がありますが、バージョン1.0のみが必要であると厳密に言っている場合は、そのパッケージの更新は表示されません。

"require": {
    "some/package": "1.2"
}
38
Matthew Brown

更新:composerバージョン1.0.0-alpha6以下でのみ使用可能です。バージョン1.0.0-alpha7以降で使用すると、「require-dev」内のすべてのパッケージが削除されます。

現在、プロジェクトで余裕があれば、composerを少し混乱させて騙すことができると思います。たとえば、更新したくないすべてのパッケージを"require-dev"に入れて、更新を実行します。 composer update --no-dev

composer installを実行すると、プロジェクトから削除されることを思い出しますので、注意してください。

このすべてのトリックは本当に厄介なので、私たちはそのようなことを行う公式の方法を待つ必要があります、個人的に私はそれらを明示的に指定するパッケージを更新します

3
arma

特定のパッケージを無視するには、 provide (独自のパッケージの一部である場合)または replace を使用できます。これは、Composer特定のパッケージを提供/交換することを通知するため、ダウンロードされません。

動作するはずのcomposer.jsonファイルの例を次に示します。

{
    "require": {
        "radic/tmp-underscore-php": "~1.2.0"
    },
    "replace": {
        "patchwork/utf8": "*"
    }
}

この例では、patchwork/utf8パッケージはcomposer installまたはupdateでは無視されます。

特定のバージョンを除外するには、以下を参照してください。 コンポーザーは特定のバージョンを除外します

2
kenorb