Как обновить одну библиотеку с помощью 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