bem/bem-tools
-
`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` следующий код: -
```js MAKE.decl('Arch', { getLibraries: function() {
```js
MAKE.decl('Arch', {
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()` - метод-хелпер, который позволяет переопределять стандартные классы bem tools, тем самым меняя функциональность. * `'Arch'` - имя класса, который мы хотим переопределить. `Arch` отвечает за построение начального дерева сборки. * `getLibraries` - метод класса Arch, который возвращает ассоциативный массив подключаемых библиотек. * `'bem-bl'` — название библиотеки и директории, в которой она будет лежать. Допустимы имена вида 'mylibraries/bem-bl' - тогда чекаут библиотеки произойдет в директорию `[корень проекта]/mylibraries/bem-bl`. * `type` - указывает способ подключения. В примере используется значение `git`, означающее, что библиотеку нужно взять из git репозитория. Возможные значение: `'git'`, `'svn'`, `'symlink'`. `svn` работает аналогично `git`, но с `svn` репозиторием. `symlink` - создает символическую ссылку в собираемом проекте на директорию с контентом библиотеки на файловой системе. Путь к библиотеке указывается через свойство `relative`. * `url` - URL к svn/git репозиторию
Здесь:
* `MAKE.decl()` - метод-хелпер, который позволяет переопределять стандартные классы bem tools, тем самым меняя функциональность.
* `'Arch'` - имя класса, который мы хотим переопределить. `Arch` отвечает за построение начального дерева сборки.
* `getLibraries` - метод класса Arch, который возвращает ассоциативный массив подключаемых библиотек.
* `'bem-bl'` — название библиотеки и директории, в которой она будет лежать. Допустимы имена вида 'mylibraries/bem-bl' -
тогда чекаут библиотеки произойдет в директорию `[корень проекта]/mylibraries/bem-bl`.
* `type` - указывает способ подключения. В примере используется значение `git`, означающее, что библиотеку нужно взять
из git репозитория. Возможные значение: `'git'`, `'svn'`, `'symlink'`. `svn` работает аналогично `git`, но с `svn` репозиторием.
`symlink` - создает символическую ссылку в собираемом проекте на директорию с контентом библиотеки на файловой системе.
Путь к библиотеке указывается через свойство `relative`.
* `url` - URL к svn/git репозиторию