Używając nowego Menedżera konfiguracji Drupal 8, jak mogę zapobiec instalacji modułu Devel w niektórych środowiskach? O ile wiem, instalowanie go na moim komputerze lokalnym oznacza, że następnym razem, gdy wyeksportuję konfigurację i przeniosę ją do innych środowisk (programistycznych, testowych, prod), zostanie ona automatycznie włączona.
8
configuration-management
Cambraca
źródło
źródło
drush
dopuszczalne? Dowiedziałem się innego dniadrush config-export --skip-modules=devel
. Może być coś podobnego bez używania drusha, ale nie wiem.Odpowiedzi:
Metoda: Drush
Drush może zignorować włączone stany rozszerzeń podczas synchronizacji konfiguracji.
drush cex --skip-modules=devel
drush cim --skip-modules=devel
Za pomocą narzędzi Drush CMI możesz pracować z listą konfiguracji do zignorowania.
drush cexy --ignore-list=/path/to/config-ignore.yml
drush cimy --delete-list=/path/to/config-ignore.yml
Metoda: moduły
Możesz użyć modułu Split konfiguracji , który pozwala:
Konfiguracja Moduł trybu tylko do odczytu
$settings['config_readonly'] = TRUE;
Kolejnym modułem jest konfiguracja środowiska, która umożliwia zastąpienie konfiguracji dla poszczególnych środowisk.
źródło
composer require --dev drupal/devel
. Dodatkową zaletą jest to, że instalacja kompozytora jest szybsza, co przyspiesza wdrażanie produktu.Aktualizacja : Funkcja opisana poniżej została niedawno usunięta https://www.drupal.org/project/config_split/issues/2926505
Jeśli używasz drush w procesie wdrażania, możesz wykonać następujące czynności:
Utwórz
drushrc.php
plik w tym samym katalogu co Twójsettings.php
(na przykładdocroot/sites/default
:) i umieść następujące elementy:Oznacza to, że możesz manipulować poleceniami
drush cex
/drush cim
, aby pomijać moduły podczas ich przetwarzania.Możesz przeczytać więcej o korzystaniu z filtra modułu konfiguracji w Drush 8 .
źródło
drush cex --skip-modules
został usunięty na korzyść config_split, jak wyjaśniono w tym numerze, więc tutaj rozwiązania oparte na drushie nie zadziałały dla mnie.Oto rozwiązanie oparte na rozwiązaniu Duncanmoo wykorzystującym moduł config_exclude
1. Zainstaluj config_exclude za pomocą Composera --dev i skonfiguruj go
zezwól na użycie pliku settings.php w lokalnym środowisku programistycznym
Dodaj ustawienia config_exclude do pliku lokalnego
oto kilka przykładowych ustawień
UWAGA 1: config_filter jest zależnością config_exclude, więc jeśli nie potrzebujesz jej produkcji, możesz wykluczyć ją powyżej
UWAGA 2: Nie
settings.local.php
jest to wymóg. Zależy to od tego, czy jest kontrolowany przez VCS, czy nie.2. Kompozytor wymaga --dev
Włączając moduł przeznaczony wyłącznie do programowania, użyj flagi --dev:
Powoduje to dodanie tych zależności do pliku composer.json w ramach wymagania-dev:
Więc jeśli zainstalujesz witrynę BEZ modułów deweloperskich, których używasz:
UWAGA: W środowiskach inscenizacyjnych i prod powinieneś zawsze robić --no-dev
3. używaj drush cex jak zwykle
nie wyeksportuje żadnego z wykluczonych ustawień modułów
UWAGA: Zauważyłem, że ustawienia core.extension wydają się zostać zmodyfikowane po uruchomieniu powyższej komendy, ale odpowiedni plik .yml nigdy nie jest zapisywany na dysku twardym (nawet po potwierdzeniu
will be deleted and replaced with the active config
), więc nie ma nic do zatwierdzenia , myślę, że zależy to od elementy wewnętrzne modułu config_excludeźródło
Jest interesujący problem dla Drupal 8.3.x: Zezwól modułom programistycznym na rezygnację z config-export . Ogólny wniosek jest taki, że Configuration Split jest obecnie najlepszym rozwiązaniem.
Komentarz swentel :
Komentarz geerlingguy :
źródło
Podział konfiguracji może być dla niektórych realnym rozwiązaniem.
https://www.drupal.org/project/config_split
źródło
Jest fajny sposób na zrobienie tego, w którym kończysz z modułami deweloperskimi zatwierdzonymi w kompozytorze, a konfiguracja tych modułów nie jest dodawana do eksportu konfiguracji (są 2 części):
1. Kompozytor wymaga opcji --dev Włączając moduł przeznaczony wyłącznie do programowania, należy użyć flagi --dev:
Powoduje to dodanie tych zależności do pliku composer.json w ramach wymagania-dev:
Jeśli więc zainstalujesz witrynę BEZ modułów programistycznych, powiesz:
NB: W środowisku inscenizacyjnym i produkcyjnym powinieneś zawsze robić --no-dev
2. Użyj modułu config_split
Moduł podziału konfiguracji umożliwia tworzenie grup eksportu konfiguracji, które można włączyć lub wyłączyć w środowisku.
Mam 3 podziały:
źródło
Zrobiłem mały skrypt, aby zrobić to wszystko za jednym razem.
źródło
Możesz także zobaczyć moduł Config Ignore .
źródło
W tym celu można użyć modułu zastępowania wdrożenia. Przeczytaj poniższy link, aby uzyskać szczegółowy opis:
http://dcycleproject.org/blog/46/continuous-deployment-drupal-style
Jednakże , najlepszym sposobem na to zrobić byłoby wyłączyć moduł na lokalny, a następnie wyeksportować konfigurację.
Drupal umożliwia zastąpienie ustawień konfiguracji
settings.php
, ale nie są one odpowiednie do wyłączania / włączania modułów.Od
default.settings.php
:źródło