Zainstalowałem witrynę Drupal 8.2.0 za pomocą composer create-project drupal/drupal testsite
.
Teraz chciałbym go uaktualnić do wersji Drupal 8.2.1. Jednak bieganie composer update drupal/drupal
nie działa. Wyświetla następujący błąd:
Pakiet „drupal / drupal” wymieniony do aktualizacji nie jest zainstalowany. Ignorowanie
Jak mam to zrobic? Wsparcie jest wyraźnie udokumentowane w example.gitignore.
# Ignore core when managing all of a project's dependencies with Composer
# including Drupal core.
# core
Musi więc być jakiś sposób na zrobienie tego z kompozytorem, ale jak?
Myślę, że to rozwiązałem. Uznałem, że potrzebuję innego pliku root composer.json, który pobierałby pakiet drupal zamiast go zastępować, ale nie wiedziałem, jak to zrobić.
Na szczęście ktoś już to zrobił i spakował Drupala w przyjazny dla kompozytora sposób: https://github.com/drupal-composer/drupal-project (najwyraźniej nie ma jeszcze stabilnej wersji).
Dzięki temu
composer create-project drupal-composer/drupal-project:8.x-dev --stability dev drupal-dir
mogłem uzyskać instalację, którą można zaktualizować za pomocą kompozytora.źródło
composer create-project
wykorzystuje żądany projekt jako szablon dla nowego projektu, więc przy pierwszej próbie git.drupal.org/project/drupal.git został użyty jako szablon dla nowego projektu. Zamiast tego użycie github.com/drupal-composer/drupal-project jako szablonu powoduje, że Drupal jest jedną z części projektu. W rzeczywistości, zamiast używaćdrupal/drupal
, używadrupal/core
(dla głównego katalogu) idrupal-composer/drupal-scaffold
innych ważnych plików, takich jak index.php i .htaccess.Polecenie
composer create-project
klonuje żądany pakiet, którym w tym przypadku jest https://git.drupal.org/project/drupal.git . Pod koniec procesu tworzenia projektu pojawi się monit, czy chcesz usunąć istniejącą historię VCS. Jeśli odpowiedziałeśn
, będziesz mógł dokonać aktualizacji z wcześniejszego repozytorium drupal. Przejdź do testsite i użyj git, aby pobrać i sprawdzić wersję Drupala, którą chcesz. Następnie uruchom,composer install
aby uzyskać zależności zidentyfikowane w composer.json i composer.lock zaktualizowanej wersji Drupal.źródło
W wierszu poleceń musieliśmy wymagać rdzenia drupal (zamień na swoją wersję):
W pliku composer.json w obszarze replace musieliśmy usunąć „drupal / core”: „^ 8.6”, więc replace wygląda następująco:
w naszym pliku composer.json teraz. Następnie uruchomiliśmy:
i drupal zaktualizowany do najnowszej wersji.
źródło