bem/bem-tools
-
55db1067b197e69a251f41f280a52a0c87c18336
55db1067b197e69a251f41f280a52a0c87c18336
`pages/.bem/level.js`
```js
var extend = require('bem/lib/util').extend; -
6c5d0c27402ae2189ad606839b6c8f71cec213ce
6c5d0c27402ae2189ad606839b6c8f71cec213ce
exports.getTechs = function() { -
0130b4c94d66fb460a729dcecc16158ae701ad6e
0130b4c94d66fb460a729dcecc16158ae701ad6e
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'
}; -
479fc7c06b96a0acf32bee5c77ee38370a6414c9
479fc7c06b96a0acf32bee5c77ee38370a6414c9
}; -
f4c45e7ff05559188b0312113867aafa4cbe1171
f4c45e7ff05559188b0312113867aafa4cbe1171
`.bem/make.js`
```js
MAKE.decl('Arch', { -
3b6d920981dd595a3b394e989b0390cc8f96aed6
3b6d920981dd595a3b394e989b0390cc8f96aed6
getLibraries: function() { -
3a7575e93c8d2c8200417bca26decc1a54a16c98
3a7575e93c8d2c8200417bca26decc1a54a16c98
return {
'bem-bl': {
type: 'git',
url: 'git://github.com/bem/bem-bl.git'
}
}; -
e266bf187351d458abacf0d6374d1c6659d82428
e266bf187351d458abacf0d6374d1c6659d82428
} -
fe84c857229782f7dcc3bde466c5c32b4221072d
fe84c857229782f7dcc3bde466c5c32b4221072d
}); -
29423885b94e05fe91ae03c38a668c8be92f6af9
29423885b94e05fe91ae03c38a668c8be92f6af9
MAKE.decl('BundleNode', { -
83ea55db04b36d4db0b70796108cbcbb9eff2131
83ea55db04b36d4db0b70796108cbcbb9eff2131
getTechs: function() { -
eecea92b1e1963e9c972f8dd4dcc6e822b8a5bbc
eecea92b1e1963e9c972f8dd4dcc6e822b8a5bbc
return [
'bemjson.js',
'bemdecl.js',
'deps.js',
'bemhtml.js',
'css',
'js',
'html'
];
} -
b1fc1eaa2c20fc1fd7c9ff03c862a10e36788f38
b1fc1eaa2c20fc1fd7c9ff03c862a10e36788f38
###### Сборка css, js, bemhtml шаблонов из файлов декларации (bemdecl) для уровня страниц pages. Подключаются уровень переопределения блоков blocks, а также blocks-common и blocks-desktop из bem-bl -
b0556ad12a024369605bedde03eb80a583faefdd
b0556ad12a024369605bedde03eb80a583faefdd
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'
}; -
3322d421a70a2e171298561f5c283f7265a1591d
3322d421a70a2e171298561f5c283f7265a1591d
return [
'bemdecl.js',
'deps.js',
'bemhtml.js',
'css',
'js'
];
} -
7a8f3e2d1f1823b4978a47b7b3e0e3e9987047a3
7a8f3e2d1f1823b4978a47b7b3e0e3e9987047a3
###### Библиотеки блоков -
f3fe763a6a17c85554911fa1054411cdc8aca240
f3fe763a6a17c85554911fa1054411cdc8aca240
TODO: По умолчанию библиотеки блоков не подключаются. Чтобы подключить нужные библиотеки блоков, добавьте
в `.bem/make.js` следующий код: -
a2176cd1a342cacd358bc84606e974cb3fe011a8
a2176cd1a342cacd358bc84606e974cb3fe011a8
```js
MAKE.decl('Arch', {
getLibraries: function() { -
7b82764db691202b20682961b1689f8d0b8095d1
7b82764db691202b20682961b1689f8d0b8095d1
return {
'bem-bl': {
type: 'git',
url: 'git://github.com/bem/bem-bl.git'
}
};
}
});
``` -
927cde2940859ac7658c2a64fe40b02b0467fab9
927cde2940859ac7658c2a64fe40b02b0467fab9
Здесь:
* `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 репозиторию