bem/bem-tools
-
У узлов есть несколько основных методов, отвечающих за процесс сборки: * `isValid()` - проверяет, есть ли необходимость в запуске сборки данного узла. Если артефакты сборки узла уже были получены ранее и узлы, от которых зависит данный, не пересобирались в текущей сборке - то будет считаться, что узел не нужно пересобирать. Иными словами, если после первой сборки вы поменяли один файл, то при последующей сборке будут пересобраны только зависящие от этого файла узлы. Для остальных isValid вернет true и они не будут пересобираться. * `make()` - осуществляет непосредственно сборку узла. * `run()` - точка входа в узел. В реализации по умолчанию выполняет метод `isValid()` и в случае если он возвращает `false`, запускает `make()`. * `clean()` - удаляет артефакты сборки данного узла.
У узлов есть несколько основных методов, отвечающих за процесс сборки:
* `isValid()` - проверяет, есть ли необходимость в запуске сборки данного узла. Если артефакты сборки узла уже были получены ранее и узлы, от которых зависит данный, не пересобирались в текущей сборке - то будет считаться, что узел не нужно пересобирать. Иными словами, если после первой сборки вы поменяли один файл, то при последующей сборке будут пересобраны только зависящие от этого файла узлы. Для остальных isValid вернет true и они не будут пересобираться.
* `make()` - осуществляет непосредственно сборку узла.
* `run()` - точка входа в узел. В реализации по умолчанию выполняет метод `isValid()` и в случае если он возвращает `false`, запускает `make()`.
* `clean()` - удаляет артефакты сборки данного узла. -
##### Примеры конфигурационных файлов для типовых задач
##### Примеры конфигурационных файлов для типовых задач
-
###### Сборка статического html, css, js, bemhtml шаблонов из bemjson для уровня страниц pages. Подключаются уровень переопределения блоков blocks, а так же blocks-common и blocks-desktop из bem-bl
###### Сборка статического html, css, js, bemhtml шаблонов из bemjson для уровня страниц pages. Подключаются уровень переопределения блоков blocks, а так же blocks-common и blocks-desktop из bem-bl
-
`pages/.bem/level.js` ```js var extend = require('bem/lib/util').extend;
`pages/.bem/level.js`
```js
var extend = require('bem/lib/util').extend; -
exports.getTechs = function() {
exports.getTechs = function() {
-
return { 'bemjson.js': '', 'bemdecl.js': 'bemdecl.js', 'deps.js': 'deps.js', 'js': 'js-i', 'css': 'css', 'bemhtml.js': '../../bem-bl/blocks-common/i-bem/bem/techs/bemhtml.js', 'html': '../../bem-bl/blocks-common/i-bem/bem/techs/html.js' };
return {
'bemjson.js': '',
'bemdecl.js': 'bemdecl.js',
'deps.js': 'deps.js',
'js': 'js-i',
'css': 'css',
'bemhtml.js': '../../bem-bl/blocks-common/i-bem/bem/techs/bemhtml.js',
'html': '../../bem-bl/blocks-common/i-bem/bem/techs/html.js'
}; -
};
};
-
`.bem/make.js` ```js MAKE.decl('Arch', {
`.bem/make.js`
```js
MAKE.decl('Arch', { -
getLibraries: function() {
getLibraries: function() {
-
return { 'bem-bl': { type: 'git', url: 'git://github.com/bem/bem-bl.git' } };
return {
'bem-bl': {
type: 'git',
url: 'git://github.com/bem/bem-bl.git'
}
}; -
}
}
-
});
});
-
MAKE.decl('BundleNode', {
MAKE.decl('BundleNode', {
-
getTechs: function() {
getTechs: function() {
-
return [ 'bemjson.js', 'bemdecl.js', 'deps.js', 'bemhtml.js', 'css', 'js', 'html' ]; }
return [
'bemjson.js',
'bemdecl.js',
'deps.js',
'bemhtml.js',
'css',
'js',
'html'
];
} -
###### Сборка css, js, bemhtml шаблонов из файлов декларации (bemdecl) для уровня страниц pages. Подключаются уровень переопределения блоков blocks, а также blocks-common и blocks-desktop из bem-bl
###### Сборка css, js, bemhtml шаблонов из файлов декларации (bemdecl) для уровня страниц pages. Подключаются уровень переопределения блоков blocks, а также blocks-common и blocks-desktop из bem-bl -
return { 'bemdecl.js': 'bemdecl.js', 'deps.js': 'deps.js', 'js': 'js-i', 'css': 'css', 'bemhtml.js': '../../bem-bl/blocks-common/i-bem/bem/techs/bemhtml.js' };
return {
'bemdecl.js': 'bemdecl.js',
'deps.js': 'deps.js',
'js': 'js-i',
'css': 'css',
'bemhtml.js': '../../bem-bl/blocks-common/i-bem/bem/techs/bemhtml.js'
}; -
return [ 'bemdecl.js', 'deps.js', 'bemhtml.js', 'css', 'js' ]; }
return [
'bemdecl.js',
'deps.js',
'bemhtml.js',
'css',
'js'
];
} -
###### Библиотеки блоков
###### Библиотеки блоков
-
TODO: По умолчанию библиотеки блоков не подключаются. Чтобы подключить нужные библиотеки блоков, добавьте в `.bem/make.js` следующий код:
TODO: По умолчанию библиотеки блоков не подключаются. Чтобы подключить нужные библиотеки блоков, добавьте
в `.bem/make.js` следующий код: