bem/bem-tools
-
Вы можете использовать один из следующих вариантов для задания префикса для сохранения результата сборки:
Вы можете использовать один из следующих вариантов для задания префикса для сохранения результата сборки:
-
* `outputName` для задания полного пути-префикса * `outputDir` плюс `outputName` для задания пути для директории и префикса файлов (они будут склеены автоматически) * `outputLevel` плюс свойста, описывающие БЭМ сущность: `block`, `elem`, `mod` и `val` (путь-префикс будет построен автоматически на базе правил маппинга сущностей в файлы, заданных для уровня)
* `outputName` для задания полного пути-префикса
* `outputDir` плюс `outputName` для задания пути для директории и префикса файлов (они будут склеены автоматически)
* `outputLevel` плюс свойста, описывающие БЭМ сущность: `block`, `elem`, `mod` и `val` (путь-префикс будет построен
автоматически на базе правил маппинга сущностей в файлы, заданных для уровня) -
```js var Q = require('q'), B = require('bem'), BEM = B.api,
```js
var Q = require('q'),
B = require('bem'),
BEM = B.api, -
decl = 'page.deps.js', outputDir = 'build', outputName = 'page', levels = ['blocks-common', 'blocks-desktop'], techs = ['css', 'js'];
decl = 'page.deps.js',
outputDir = 'build',
outputName = 'page',
levels = ['blocks-common', 'blocks-desktop'],
techs = ['css', 'js']; -
// используем outputDir и outputName Q.when( BEM.build({ outputDir: outputDir, outputName: outputName, declaration: decl, level: levels, tech: techs }), function() { console.log('Finished build of techs %s for levels %s. Result in %s/%s.* files.', techs.join(', '), levels.join(', '), outputDir, outputName); } );
// используем outputDir и outputName
Q.when(
BEM.build({
outputDir: outputDir,
outputName: outputName,
declaration: decl,
level: levels,
tech: techs
}),
function() {
console.log('Finished build of techs %s for levels %s. Result in %s/%s.* files.',
techs.join(', '), levels.join(', '), outputDir, outputName);
}
); -
// используем outputLevel var level = B.createLevel('path/to/level'), block = 'page'; Q.when( BEM.build({ outputLevel: level, block: block }), function() { console.log('Finished build of techs %s for levels %s. Result in %s.* files.', techs.join(', '), levels.join(', '), level.getRelByObj({ block: block })); } ); ```
// используем outputLevel
var level = B.createLevel('path/to/level'),
block = 'page';
Q.when(
BEM.build({
outputLevel: level,
block: block
}),
function() {
console.log('Finished build of techs %s for levels %s. Result in %s.* files.',
techs.join(', '), levels.join(', '), level.getRelByObj({ block: block }));
}
);
``` -
#### BEM.decl
#### BEM.decl
-
Команды для работы с декларациями использования.
Команды для работы с декларациями использования.
-
##### BEM.decl.merge()
##### BEM.decl.merge()
-
Объединение деклараций.
Объединение деклараций.
-
* **String** `output` файл для записи результата, по умолчанию STDOUT * **Array** `declaration` имя файла декларации использования (обязательный параметр)
* **String** `output` файл для записи результата, по умолчанию STDOUT
* **Array** `declaration` имя файла декларации использования (обязательный параметр) -
##### BEM.decl.subtract()
##### BEM.decl.subtract()
-
Вычитание деклараций.
Вычитание деклараций.
-
## Участие в разработке
## Участие в разработке
-
### Запуск автотестов
### Запуск автотестов
-
Для того, чтобы проверить правильность внесённых изменений, рекомендуем выполнить следующую команду в корневой директории и убедиться, что все тесты выполнились без ошибок:
Для того, чтобы проверить правильность внесённых изменений, рекомендуем выполнить следующую команду в корневой директории и убедиться, что все тесты выполнились без ошибок:
-
mocha
mocha
-
### Запуск автотестов с отчётом о покрытии кода автотестами
### Запуск автотестов с отчётом о покрытии кода автотестами
-
Для того, чтобы узнать о степени покрытия исходного кода автотестами, следует выполнить следующую команду:
Для того, чтобы узнать о степени покрытия исходного кода автотестами, следует выполнить следующую команду:
-
make test-cover
make test-cover