bem/bem-tools
-
Если изменения маски для выбора уровней не достаточно и нужна более сложная логика, нужно переопределить метод `createBlocksLevelsNodes()`:
Если изменения маски для выбора уровней не достаточно и нужна более сложная логика, нужно переопределить метод
`createBlocksLevelsNodes()`: -
```js MAKE.decl('Arch', { createBlocksLevelsNodes: function(parent, children) { // Создаем экземпляр LevelNode var node1 = new LevelNode(...); // Добавляем созданный узел в дерево this.arch.setNode(node1, parent, children);
```js
MAKE.decl('Arch', {
createBlocksLevelsNodes: function(parent, children) {
// Создаем экземпляр LevelNode
var node1 = new LevelNode(...);
// Добавляем созданный узел в дерево
this.arch.setNode(node1, parent, children); -
var node2 = new LevelNode(...); this.arch.setNode(node2, parent, children);
var node2 = new LevelNode(...);
this.arch.setNode(node2, parent, children); -
// Возвращаем массив из идентификаторов созданных узлов return [node1.getId(), node2.getId()]; } }); ```
// Возвращаем массив из идентификаторов созданных узлов
return [node1.getId(), node2.getId()];
}
});
``` -
###### Бандлы и страницы
###### Бандлы и страницы
-
По умолчанию уровнями бандлов считаются все директории `pages*` и `bundles*` в корне проекта. Изменить это можно по аналогии с конфигурацией уровней переопределения.
По умолчанию уровнями бандлов считаются все директории `pages*` и `bundles*` в корне проекта. Изменить это можно по
аналогии с конфигурацией уровней переопределения. -
```js MAKE.decl('Arch', { bundlesLevelsRegexp: /регулярное выражение/, }); ```
```js
MAKE.decl('Arch', {
bundlesLevelsRegexp: /регулярное выражение/,
});
``` -
И для большего контроля:
И для большего контроля:
-
```js MAKE.decl('Arch', {
```js
MAKE.decl('Arch', { -
getBundlesLevels: function() { return [ 'pages-desktop', 'pages-touch', 'bundles/common' ]; }
getBundlesLevels: function() {
return [
'pages-desktop',
'pages-touch',
'bundles/common'
];
} -
Для каждого бандла по умолчанию собираются следующие конечные файлы:
Для каждого бандла по умолчанию собираются следующие конечные файлы: -
* `.bemhtml.js` * `.html` * `.css` * `.ie.css` * `.js` * `_*.css` * `_*.ie.css` * `_*.js`
* `.bemhtml.js`
* `.html`
* `.css`
* `.ie.css`
* `.js`
* `_*.css`
* `_*.ie.css`
* `_*.js` -
и промежуточные:
и промежуточные:
-
* `.bemdecl.js` * `.deps.js` * `.deps.js.deps.js` * `.bemhtml.js.meta.js` * `.js.meta.js` * `.css.meta.js` * `.ie.css.meta.js`
* `.bemdecl.js`
* `.deps.js`
* `.deps.js.deps.js`
* `.bemhtml.js.meta.js`
* `.js.meta.js`
* `.css.meta.js`
* `.ie.css.meta.js` -
По умолчанию исходным файлом считается файл `.bemjson.js`. Если его нет на диске, исходным станет `.bemdecl.js`. Если его тоже нет - `.deps.js`. В случаях, когда нет `.bemjson.js` статический html собран не будет.
По умолчанию исходным файлом считается файл `.bemjson.js`. Если его нет на диске, исходным станет `.bemdecl.js`. Если его
тоже нет - `.deps.js`. В случаях, когда нет `.bemjson.js` статический html собран не будет. -
Чтобы изменить перечень собираемых файлов, добавьте в `.bem/make.js` следующий код:
Чтобы изменить перечень собираемых файлов, добавьте в `.bem/make.js` следующий код:
-
getTechs: function() { return [ 'bemdecl.js', 'deps.js', 'bemhtml.js', 'css', 'js', 'priv.js' ]; } }); ```
getTechs: function() {
return [
'bemdecl.js',
'deps.js',
'bemhtml.js',
'css',
'js',
'priv.js'
];
}
});
``` -
Если вы хотите дополнить стандартный набор своими:
Если вы хотите дополнить стандартный набор своими:
-
getTechs: function() { return this.__base().concat(['priv.js', 'pub.js']); } }); ```
getTechs: function() {
return this.__base().concat(['priv.js', 'pub.js']);
}
});
``` -
`this.__base()` вызывает базовый метод, который вернет нам массив технологий по умолчанию. С помощью `concat()` мы добавляем в него технологии `priv.js` и `pub.js` и возвращаем его.
`this.__base()` вызывает базовый метод, который вернет нам массив технологий по умолчанию. С помощью `concat()` мы добавляем
в него технологии `priv.js` и `pub.js` и возвращаем его.