Рейтинг:0

При установке Composer отсутствуют файлы из Core

флаг cn

Я только что попытался обновить Drupal 9.2.10 до 9.3.0 с помощью композитора и получил следующую ошибку во время обновления базы данных.

модуль просмотров
Обновить sort_identifier
Ошибка: Drupal\Component\Plugin\Exception\PluginNotFoundException: плагин "tag" не существует. Действительные идентификаторы плагинов для Drupal\views\Plugin\ViewsPluginManager: в Drupal\Core\Plugin\DefaultPluginManager->doGetDefinition() (строка 53 /path/to/home/dir/core/lib/Drupal/Component/Plugin/Discovery /DiscoveryTrait.php).

Я использовал композитор для установки всего в течение достаточно долгого времени, и до сих пор все работало нормально.

После дальнейшего изучения этой ошибки я заметил, что установка даже не имеет DiscoveryTrait.php файл, включенный в zip-архив Core 9.3.0.

Кроме того, установка представляет собой довольно сложную многосайтовую установку.

С какими последствиями я столкнусь, если скопирую некоторые файлы из zip-архива на свой локальный компьютер и отправлю изменения через git?

Нужно ли мне продолжать устанавливать этот файл вручную, поскольку он, похоже, не включен в пакет композитора?

Наконец, почему этот файл не был установлен после запуска обновление композитора "drupal/*" -w команда?

Я думаю, меня больше всего беспокоит то, какие другие файлы могут отсутствовать в ядре на данный момент...

флаг cn
Не копируйте файлы вручную. Предполагая, что ваш код находится в git, и вы выполнили всю свою недавнюю работу, я бы создал новый клон вашего репо в отдельном каталоге, а затем запустил установку композитора, чтобы увидеть, есть ли у вас такая же проблема. Весь смысл использования composer + git заключается в том, что вы должны везде получать согласованные, воспроизводимые файлы, поэтому, когда этого не происходит, вам следует устранять неполадки, возвращаясь к источнику (новый клон git) вместо того, чтобы копировать файлы вручную.
4uk4 avatar
флаг cn
Как DiscoverTrait.php может вызвать ошибку, если он отсутствует?
Jaypan avatar
флаг de
DiscoveryTrait не отсутствует. Как уже упоминал 4k4, это то, что выдает вашу ошибку. Попробуйте запустить `composer install` еще раз. Он добавит любые пропущенные файлы.
Kevin avatar
флаг in
Кроме того, `composer update "drupal/*" -w`, вероятно, не лучшая вещь для одновременного запуска. Я бы делал обновления ядра и вклада небольшими партиями.
Рейтинг:1
флаг cn

Проблема заключалась в моем корневом файле .gitignore, где я кеш/ помечен как каталог для игнорирования. Я думаю, когда я впервые настроил этот файл игнорирования, я не понял, что эта строка также будет исключать /path/to/public/core/modules/views/src/Plugin/views/cache и все его содержимое, где Тег.php проживает и является фактическим плагином, который он искал.

Так что для тех, кто видит это, если у вас есть папка кеша, которую вы хотите игнорировать из своего корневого каталога, убедитесь, что вы добавили !*/ядро/**/кеш/ для включения любых файлов основного кэша.

Christoph Burschka avatar
флаг cn
Самый безопасный способ использования .gitignore — обычно использовать относительные пути, такие как `./cache` (или создать отдельный .gitignore в `cache/`, который просто содержит `.`. (Кроме того, проверка файлов, загруженных композитором в git во-первых, может быть не оптимальным, хотя это кажется довольно распространенным.)

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.