bem/bem-tools
-
Способ заключается в том, что вы создаёте обычный CommonJS модуль, из
которого экспортируете несколько функций, которые перекроют методы базового
класса `Tech` из модуля [lib/tech.js](https://github.com/bem/bem-tools/blob/master/lib/tech.js). -
```js
exports.getCreateResult = function(...) {
// ваш код
};
``` -
Вы так же можете сгруппироать все методы в объекте `techMixin`. Это рекомендованный способ.
-
```js
exports.techMixin = { -
getCreateResult: function(...) {
// ваш код
} -
##### Простой способ
-
В простом способе к экспортируемым функциям добавляется переменная `baseTechPath`, в которой
содержится абсолютный путь до расширяемого модуля технологии. -
```js
var BEM = require('bem'); -
exports.baseTechPath = BEM.require.resolve('./techs/css');
``` -
Так же вы можете организовать контекстное наследование, использую переменную `baseTechName`.
В этом случае базовый класс будет выбран в зависимости от уровня переопределения, на котором
будет использован модуль технологии. -
```js
exports.baseTechName = 'css';
``` -
В этом примере новая технология будет расширять технологию `css`, заданную на уровне переопределения
в файле `.bem/level.js`. -
##### Для продвинутых
-
Если вам нужен полный контроль, вы можете создать модуль, экспортирующий готовый класс технологии `Tech`.
-
```js
var INHERIT = require('inherit'),
BaseTech = require('bem/lib/tech').Tech; -
exports.Tech = INHERIT(BaseTech, {
-
create: function(prefix, vars, force) {
// do some creation work
}, -
build: function(prefixes, outputDir, outputName) {
// organize own build process
} -
Если в качестве базовой технологии вы хотите использовать одну из существующих технологий,
написанных в простом стиле, воспользуйтесь функцией `getTechClass()` для получения класса
этой технологии. Мы рекомендуем всегда использовать `getTechClass()`, чтобы не зависеть
от реализации базовой технологии. -
```js
var INHERIT = require('inherit'),
BEM = require('bem'),
BaseTech = BEM.getTechClass(require.resolve('path/to/tech/module'));
No more segments to load.
Loading more segments…
© 2009-2024 WebTranslateIt Software S.L. All rights reserved.
Terms of Service
·
Privacy Policy
·
Security Policy