drush cex --skip-modules
был удален в пользу config_split, как объяснено в этом выпуске, поэтому решения, основанные на drush, у меня не сработали.
Вот решение, основанное на решении Duncanmoo с использованием модуля config_exclude
1. Установите config_exclude с помощью Composer require --dev и настройте его
$ composer require --dev drupal/config_exclude
$ drush en config_exclude -y
$ nano sites/default/setting.php
разрешить использование settings.php в вашей локальной среде разработки
if (file_exists($app_root . '/' . $site_path . '/settings.local.php')) {
include $app_root . '/' . $site_path . '/settings.local.php';
}
Добавить настройки config_exclude в локальный файл
$ nano sites/default/setting.local.php
вот несколько примеров настроек
$settings['config_exclude_modules'] = [
'devel',
'config_exclude',
'config_filter',
...
'stage_file_proxy',
];
ПРИМЕЧАНИЕ 1: config_filter является зависимостью config_exclude, поэтому, если вам не нужен продукт, вы можете исключить его выше
ПРИМЕЧАНИЕ 2: Это settings.local.php
не требование. Это зависит от того, контролируется ли ваша VCS или нет.
2. Композитор требует --dev
При включении модуля, предназначенного исключительно для разработки, используйте флаг --dev:
$ composer require --dev drupal/devel
Это приводит к тому, что эти зависимости добавляются в файл composer.json под require-dev:
...
"require-dev": {
"drupal/twig_xdebug": "^1.0",
"drupal/devel": "^1.0@RC"
}
}
Поэтому, если вы устанавливаете сайт БЕЗ ваших модулей разработки, вы используете:
$ composer install --no-dev
ПРИМЕЧАНИЕ: В вашей промежуточной и рабочей среде вы всегда должны делать --no-dev
3. Используйте Drush Cex, как вы обычно используете
$ drush cex
не будет экспортировать ни один из исключенных параметров модулей
ПРИМЕЧАНИЕ. Я заметил, что настройки core.extension , похоже, были изменены после выполнения вышеуказанной команды, но соответствующий .yml никогда не записывается на жесткий диск (даже после подтверждения will be deleted and replaced with the active config
), поэтому ничего не нужно коммитить, я думаю, это зависит от внутренности модуля config_exclude
drush
приемлемым? Я узнал на днях оdrush config-export --skip-modules=devel
. Может быть что-то подобное без использования drush, но я не знаю.