drush cex --skip-modules
è stato rimosso a favore di config_split come spiegato in questo numero, quindi le soluzioni qui basate su drush non hanno funzionato per me.
Ecco la soluzione basata sulla soluzione Duncanmoo che utilizza il modulo config_exclude
1. Installa config_exclude usando Composer richiede --dev e configuralo
$ composer require --dev drupal/config_exclude
$ drush en config_exclude -y
$ nano sites/default/setting.php
consenti settings.php da usare nel tuo ambiente di sviluppo locale
if (file_exists($app_root . '/' . $site_path . '/settings.local.php')) {
include $app_root . '/' . $site_path . '/settings.local.php';
}
Aggiungi le impostazioni di config_exclude nel file locale
$ nano sites/default/setting.local.php
ecco alcune impostazioni di esempio
$settings['config_exclude_modules'] = [
'devel',
'config_exclude',
'config_filter',
...
'stage_file_proxy',
];
NOTA 1: config_filter è una dipendenza config_exclude quindi se non ti serve la produzione puoi escluderla sopra
NOTA 2: Il settings.local.php
non è un requisito. Dipende se è controllato dal VCS o meno.
2. Il compositore richiede --dev
Quando si abilita un modulo che è puramente per lo sviluppo, utilizzare il flag --dev:
$ composer require --dev drupal/devel
Ciò comporta l'aggiunta di tali dipendenze nel file composer.json in request-dev:
...
"require-dev": {
"drupal/twig_xdebug": "^1.0",
"drupal/devel": "^1.0@RC"
}
}
Quindi se installi il sito SENZA i tuoi moduli di sviluppo usi:
$ composer install --no-dev
NOTA: nei tuoi ambienti di staging e prod, dovresti sempre fare --no-dev
3. utilizzare drush cex come si usa normalmente
$ drush cex
non esporterà nessuna delle impostazioni dei moduli esclusi
NOTA: ho notato che le impostazioni di core.extension sembrano essere state modificate dopo aver eseguito il comando sopra, ma il corrispondente .yml non viene mai scritto sul disco rigido (anche dopo aver confermato will be deleted and replaced with the active config
) quindi non c'è nulla da impegnare, immagino che dipenda dal interni del modulo config_exclude
drush
accettabile? L'ho scoperto l'altro giornodrush config-export --skip-modules=devel
. Potrebbe esserci qualcosa di simile senza usare drush, ma non lo so.