gulp-bem / gulp-bem-bundle-builder

DEPRECATED repository, moved to https://github.com/bem/gulp-bem/tree/master/packages/gulp-bem-bundle-builder
Other
3 stars 1 forks source link

Как собрать отдельные бандлы? #15

Open hvab opened 7 years ago

hvab commented 7 years ago

Структура такая:

.
├── common.blocks
│   └── page
│       └── page.css
├── common.bundles
│   └── common
│       └── common.bemdecl.js
├── design
│   ├── common.blocks
│   │   └── page
│   │       └── page.css
│   └── desktop.blocks
│       └── page
│           └── page.css
├── desktop.blocks
│   └── page
│       └── page.css
└── desktop.bundles
    └── desktop
        └── desktop.bemdecl.js

Файлы common.bemdecl.js и desktop.bemdecl.js:

module.exports = {
  decl: [
    'page'
  ]
};

Сборку провожу так:

const builder = bundleBuilder({
  levels: [
    'common.blocks',
    'design/common.blocks',
    'desktop.blocks',
    'design/desktop.blocks'
  ],
  techMap: {
    css: ['css']
  }
});

gulp.task('bemCss', function() {
  return bundlerFs('*.bundles/*')
    .pipe(builder({
      css: bundle => bundle.src('css')
        .pipe(concat(bundle.name + '.css'))
    }))
    .pipe(gulp.dest('.'));
});

После сборки создаются два файла common.css и desktop.css с одинаковым содержимым. То есть, согласно тем уровням, что указаны const builder = bundleBuilder. Как при том же списке уровней сделать бандлы для разных уровней? Можно ли указать уровни в декларации бандла?

qfox commented 7 years ago

При сборке с разными уровнями нужно создать два разных бандла или же добросить нужные уровни при вызове builder (кажется, можно), либо же создать issue/PR в bundlerFS и там сделать возможным каким-то образом указывать уровни для бандлов (технически в bundle-builder все должно быть и так норм).