Как обновить одну библиотеку с помощью Composer?

мне нужно установить только 1 пакет для моего дистрибутива SF2 (DoctrineFixtures).

когда я запускаю

php composer.phar update

Я

  - Updating twig/twig (dev-master 39d94fa => v1.13.0)
    The package has modified files:
    M CHANGELOG
    M doc/filters/batch.test
    M doc/filters/index.rst
    M doc/filters/url_encode.rst
    M doc/functions/index.rst
    M doc/tags/index.rst
    M doc/tests/index.rst
    M lib/Twig/Autoloader.php
    M lib/Twig/Compiler.php
    M lib/Twig/CompilerInterface.php
-10 more files modified, choose "v" to view the full list

похоже, последний разработчик отредактировал много файлов внутри поставщика.

чтобы обойти это, я попытался

php composer.phar update <package_name>

но это, кажется, не работает. Как я могу обновить / установить только одну библиотеку из composer.в JSON?

4 ответов


установить doctrine/doctrine-fixtures-bundle С версии 2.1.* и минимальной стабильности @dev используйте этот:

composer.phar require doctrine/doctrine-fixtures-bundle:2.1.*@dev

затем обновить только один пакет:

composer.phar update doctrine/doctrine-fixtures-bundle

если вы просто хотите обновить несколько пакетов, а не все, вы можете перечислить их как таковые:

php composer.phar update vendor/package:2.* vendor/package2:dev-master

вы также можете использовать подстановочные знаки для обновления сразу нескольких пакетов:

php composer.phar update vendor/*
  • --prefer-source: установка пакетов из source при наличии.
  • --prefer-dist: установка пакетов из dist при наличии.
  • --ignore-platform-reqs: игнорировать php, hhvm, lib-* и ext-* требования и принудительная установка, даже если локальная машина не выполняет их. См. также platform настройки.
  • --dry-run: имитация команды, фактически ничего не делая.
  • --dev: установка пакетов, перечисленных в require-dev (это поведение по умолчанию).
  • --no-dev: пропустить установку пакетов, перечисленных в require-dev. Поколение автопогрузчика пропускает autoload-dev правила.
  • --no-autoloader: пропускает генерацию автопогрузчика.
  • --no-scripts: пропускает выполнение скриптов, определенных в composer.формат JSON.
  • --no-plugins: отключает Плагины.
  • --нет-прогресс: удаляет индикатор выполнения, который может испортить некоторые терминалы или скрипты, которые не обрабатывают backspace письмена.
  • --optimize-autoloader (- o): конвертировать с PSR-0/4 Автозагрузка в classmap получить быстрее автозагрузчика. Это рекомендуется специально для производства, но может занять некоторое время, чтобы запустить, поэтому в настоящее время это не делается по умолчанию.
  • --lock: только обновляет хэш файла блокировки, чтобы подавить предупреждение о том, что файл блокировки устарел.
  • --with-dependencies: добавьте также все зависимости белый список пакетов в белый список.
  • --prefer-стабильный: предпочитаю стабильные версии зависимостей.
  • -- prefer-самый низкий: предпочитайте самые низкие версии зависимостей. Полезно для тестирования минимальных версий требований, обычно используемых с --prefer-stable.

вы можете в основном сделать следующее, Чтобы установить новый пакет.

php composer.phar require

затем терминал попросит вас ввести имя пакета для Поиск.

$ Search for a package []: //Your package name here

затем терминал спросит версию пакета (если вы хотите иметь последнюю версию, просто оставьте ее пустой)

$ Enter the version constraint to require (or leave blank to use the latest version) []: //your version number here

затем просто нажмите клавишу возврата. Терминал попросит другой пакет, если вы не хотите устанавливать другой, просто нажмите клавишу возврата, и вы будет сделано.


чтобы убедиться, что composer обновит один пакет, уже установленный до последней версии, в пределах ограничений версии, установленных в composer.json удалите пакет из поставщика, а затем выполните:

php composer.phar update vendor/package