bem/bem-tools
-
212829577d8d2caa251bdbe7d2cfab2789562427
212829577d8d2caa251bdbe7d2cfab2789562427
Если изменения маски для выбора уровней не достаточно и нужна более сложная логика, нужно переопределить метод
`createBlocksLevelsNodes()`: -
7b904101f52fe96e0ac5add0762b6919b2f8253f
7b904101f52fe96e0ac5add0762b6919b2f8253f
```js
MAKE.decl('Arch', {
createBlocksLevelsNodes: function(parent, children) {
// Создаем экземпляр LevelNode
var node1 = new LevelNode(...);
// Добавляем созданный узел в дерево
this.arch.setNode(node1, parent, children); -
a6cf840ddb7983ad84347555035ef0ae638284f5
a6cf840ddb7983ad84347555035ef0ae638284f5
var node2 = new LevelNode(...);
this.arch.setNode(node2, parent, children); -
35b24c857ef5e304dc1f4225f51bd7b9ee22cd7d
35b24c857ef5e304dc1f4225f51bd7b9ee22cd7d
// Возвращаем массив из идентификаторов созданных узлов
return [node1.getId(), node2.getId()];
}
});
``` -
31ebc5e5a725b4af2ae2e296f4ac2b3aa63b594a
31ebc5e5a725b4af2ae2e296f4ac2b3aa63b594a
###### Бандлы и страницы -
6627e24654e1117cf99f11fe824430b5ee56b6f1
6627e24654e1117cf99f11fe824430b5ee56b6f1
По умолчанию уровнями бандлов считаются все директории `pages*` и `bundles*` в корне проекта. Изменить это можно по
аналогии с конфигурацией уровней переопределения. -
4a1e10b36fce78e548546e6a2fae9d1f8ab0691f
4a1e10b36fce78e548546e6a2fae9d1f8ab0691f
```js
MAKE.decl('Arch', {
bundlesLevelsRegexp: /регулярное выражение/,
});
``` -
93e6ca4296070055fc332ab44c167b5cb65ba9ab
93e6ca4296070055fc332ab44c167b5cb65ba9ab
И для большего контроля: -
5b4aa2b36d1482ba2180e34667b2ac7a8acb9d5b
5b4aa2b36d1482ba2180e34667b2ac7a8acb9d5b
```js
MAKE.decl('Arch', { -
674a9d64ea0e3460bb8792bfe011ff8aa7e1dfa3
674a9d64ea0e3460bb8792bfe011ff8aa7e1dfa3
getBundlesLevels: function() {
return [
'pages-desktop',
'pages-touch',
'bundles/common'
];
} -
7258da0b2027cf7f4d1f6b2f0562f0621b0d46cb
7258da0b2027cf7f4d1f6b2f0562f0621b0d46cb
Для каждого бандла по умолчанию собираются следующие конечные файлы: -
1cfcff6553dacc4ec8dc495117bb67c3ccc25178
1cfcff6553dacc4ec8dc495117bb67c3ccc25178
* `.bemhtml.js`
* `.html`
* `.css`
* `.ie.css`
* `.js`
* `_*.css`
* `_*.ie.css`
* `_*.js` -
d9b1c67b8c6c8911c6bc122aec509152e439f809
d9b1c67b8c6c8911c6bc122aec509152e439f809
и промежуточные: -
307f416baf10cae7673ca117abc2304401bd126c
307f416baf10cae7673ca117abc2304401bd126c
* `.bemdecl.js`
* `.deps.js`
* `.deps.js.deps.js`
* `.bemhtml.js.meta.js`
* `.js.meta.js`
* `.css.meta.js`
* `.ie.css.meta.js` -
d0c0d50f912ef84e5d58cf6f89f24ebfff95043d
d0c0d50f912ef84e5d58cf6f89f24ebfff95043d
По умолчанию исходным файлом считается файл `.bemjson.js`. Если его нет на диске, исходным станет `.bemdecl.js`. Если его
тоже нет - `.deps.js`. В случаях, когда нет `.bemjson.js` статический html собран не будет. -
cc17c10ddcacba74d091a4b1a68ae84b1da4404a
cc17c10ddcacba74d091a4b1a68ae84b1da4404a
Чтобы изменить перечень собираемых файлов, добавьте в `.bem/make.js` следующий код: -
92c2313dad9674cdb9143fff899f374485c30f9a
92c2313dad9674cdb9143fff899f374485c30f9a
getTechs: function() {
return [
'bemdecl.js',
'deps.js',
'bemhtml.js',
'css',
'js',
'priv.js'
];
}
});
``` -
e651d465b178c25e2f846499cfd6622b5adab60a
e651d465b178c25e2f846499cfd6622b5adab60a
Если вы хотите дополнить стандартный набор своими: -
51c703937dd9b96095943b30a2e2cc965fe8fdea
51c703937dd9b96095943b30a2e2cc965fe8fdea
getTechs: function() {
return this.__base().concat(['priv.js', 'pub.js']);
}
});
``` -
f21e89c22a5bda9ae863bba486689829db493bd9
f21e89c22a5bda9ae863bba486689829db493bd9
`this.__base()` вызывает базовый метод, который вернет нам массив технологий по умолчанию. С помощью `concat()` мы добавляем
в него технологии `priv.js` и `pub.js` и возвращаем его.