Войти с помощью github
Форум /
// именованные типы бандлов (хз для чего)
describe('page', 'pages/*', function (node) {
  addTech('blabla', {yolo swag params}); // как обычно
  addTargets(['html', 'css', '?.min.css']);
  // если ? не указан и нет точки — достраиваем до "?.css"

  afterTargetReady('?.min.css', function (target) {
    cp(target.path, releasePath + '/' + target.relativePath);
  });
  afterEach(function () {
    // запускаем после завершения обработки всех таргетов
    sed(node.targets['css'], 's/script/script yolo="swag"/g', '-i'); // условно
  });
});
after(function () {
  // finalizing build
  // cd release; cap deploy?
});

Или даже так:

describe('page', {
  path: 'pages/*',
  yoloswag: 'yes'
}, function (node) {
  // ...
});

При этом технологии можно отдавать списом сервисов по тиму architect (в package.json, например, или отдельном файле), в запускалке можно сделать так, чтобы она смотрела все bem-* пакеты, установленные в node_modules, и собирала сама оттуда технологии. Если какой-то пакет будет предоставлять расширения — он их может просто проксировать через себя.

При этом можно таким же параметром передать describe('all-bundles', { include: '*.bundles/*, exclude: '*.bundles/merged', к вопросу о merged бандле, и после этого в merged бандле указать, что он {include: '*.bundles/merged', dependsOn: 'all-bundles'}. Кажется, что и просто, и понятно. При этом в технологии эта информация о бандле (и его "конфигах") тоже попадет.

/cc @blond @tadatuta @vithar @veged