Na przykład, jeśli wykonasz następujące polecenia:
drush dl views
drush en views views_ui views_export
Podczas próby włączenia modułów widoków pojawi się następujący błąd:
Widoki modułów nie mogą zostać włączone, ponieważ zależy to od następujących modułów, których nie można znaleźć: ctools
Czy istnieje sposób, aby uzyskać drush, aby pobrać wymagane zależności modułów?
drush en -y
automatycznie pobiorą i włączą zależności.Odpowiedzi:
Drush 5 i więcej:
Nowsze wersje Drusha (wersja 5 i wyższa) zapytają, czy chcesz pobrać wymagane zależności po włączeniu (
drush en
) modułu. Zapyta również, czy chcesz pobrać sam moduł, jeśli jeszcze go nie pobrałeś. W połączeniu z opcją „-y” (np.drush en views -y
) Wszystko zostanie pobrane i włączone automatycznie bez zadawania dalszych pytań.Zauważ, że automatyczne pobieranie zależności może się nie powieść, jeśli nazwa wymaganego modułu nie jest taka sama jak nazwa projektu na drupal.org. Aby uzyskać więcej informacji, zobacz moją oryginalną odpowiedź na Drush 4 poniżej.
Oryginalna odpowiedź (Drush 4):
Nie, nie ma na to sposobu. Problem polega na tym, że istnieje różnica między modułem a projektem. Często (ale nie zawsze) nazwa projektu jest identyczna z modułem (lub jednym z modułów) zawartym w projekcie. Pojedynczy projekt (np. Widoki) może zawierać wiele modułów (widoki, views_ui, views_export). Podczas gdy
drush dl
pobiera projektu ,drush en
umożliwia moduł .Kiedy moduł deklaruje zależności, deklaruje zależności od modułów, a nie projektów. Wykonując a
drush en
, Drush może sprawdzić, czy wymagany moduł jest dostępny. Jednak jeśli nie jest dostępny, Drush nie może wiedzieć, który projekt pobrać. Aby Drush mógł automatycznie pobierać wymagane projekty, należy wykonać prace w podstawowej infrastrukturze projektów / modułów, aby Drush mógł pobrać mapowanie projektów i modułów. Zobacz także Inteligentniejsza obsługa brakujących zależności .źródło
W rzeczywistości drush5 (wciąż w fazie rozwoju) ma mapę znanych, wspólnych zależności (content.module, ctools, ...). Tak więc w twoim przykładzie rzeczywiście pobiera to ctools.
źródło
nie jest to już problemem, ponieważ najnowsze wersje drush robią to „automagicznie”:
źródło
Niektóre moduły lub projekty zawierają skrypt drush make , który może pobierać zależności i instalować biblioteki zewnętrzne.
Jednak w większości przypadków tak nie jest i występują problemy z zagnieżdżaniem skryptów drush make. Nadal warto zwrócić uwagę na niektóre moduły, które są bardziej skomplikowane w konfiguracji.
źródło
Wypróbuj moduł szybkiej aktualizacji . Spowoduje to pobranie wszystkich brakujących projektów zależności.
Oto cytat na ten temat (ze strony projektu modułu):
źródło