Подтвердить что ты не робот

Не обновлять определенный пакет

Есть ли способ сказать композитору, что каждый раз, когда я делаю composer update, я хочу, чтобы он проигнорировал конкретный пакет?

4b9b3361

Ответ 1

На самом деле я не знаю, есть ли способ сказать 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 (удалить после установки) самостоятельно, они не будут обновлены, если они также не указаны в списке.

От композитора: Если вы хотите установить или обновить одну зависимость, вы можете добавить их в белый список:

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

Проверьте эту ссылку, а также отметьте Composer.

Обновление: (найдено в Интернете, но не проверено)

Чтобы сделать это, просто удалите пакет из composer.lock

Ответ 2

Рассматривали ли вы указание требуемой версии пакета, который вы пытаетесь игнорировать? Например:

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

Это может быть обновлено, потому что вы говорите любую версию >= 1.2, < 2.0. Но если вы строго утверждаете, что хотите только версию 1.0, вы не должны видеть никаких обновлений для этого пакета:

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

Ответ 3

Обновление: доступно только для композиторов версий 1.0.0-alpha6 и ниже. Использование его в версии 1.0.0-alpha7 и выше приведет к удалению всех пакетов в "require-dev".

Я считаю, что в настоящее время вы можете обмануть композитора каким-то беспорядком, если сможете себе это позволить в своем проекте. Что-то вроде: Поместите все пакеты, которые вы не хотите обновлять, в "require-dev" и запускайте обновления с помощью composer update --no-dev

Просто будьте осторожны, если вы запустите composer install, как я помню, они будут удалены из вашего проекта.

Вся эта обманка действительно противна, поэтому мы должны ждать официального способа делать такие вещи, лично я обновляю пакеты, явно указывая их

Ответ 4

Чтобы игнорировать определенный пакет, вы можете использовать provide (если это часть вашего собственного пакета) или replace. Это говорит Composer, что вы хотите предоставить/заменить определенный пакет, чтобы он не загружал его.

Вот пример файла composer.json, который должен работать:

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

В этом примере пакет patchwork/utf8 будет проигнорирован на composer install или update.

Чтобы исключить определенную версию, см. Composer исключает определенные версии.