enb-bevis-helper 
Надстройка над ENB для типовой конфигурации BEViS-проекта
ENB - инструмент для сборки, разбитый на несколько отдельных модулей. При ручном конфигурировании сборки нужно устанавливать каждый модуль самостоятельно,
указывать нужные версии и зависимости между ними, указывать технологии для сборки, параметризировать их.
Модуль enb-bevis-helper упрощает эту процедуру, сводя все конфги к трём типам:
###package.json
Укажите зависимость от последней версии пакета enb-bevis-helper, и все нужные модули для сборки вашего проекта подтянутся самостоятельно.
"dependencies": {
"enb-bevis-helper": "1.0.0",
}
Здесь же в дополнительной секции enb укажите пути к ресурсам вашего проекта и сборщик подхватит их автоматически.
"dependencies": {
"enb-bevis-helper": "1.0.0",
},
"enb": {
"sources": [
"blocks",
"core",
"pages"
]
}
Дальнейшие объяснения основаны на предположении, что исходный код страниц хранится в папке /pages, собранные страницы оказываются в /build, а имена файлов выглядят так:
/pages
/index-page
/news-page
...
/build/
/index
/news
##Руководство
- Выполнить
npm install.
- Проверить, что
ENB установлен. Команда node_modules/.bin/enb должна выполниться без ошибок.
- Создать
.enb/make.js
module.exports = function(config) {
};
- Подключить конфиг
enb-bevis-helper
module.exports = function(config) {
config.includeConfig('enb-bevis-helper');
};
- Настроить
enb-bevis-helper
module.exports = function(config) {
config.includeConfig('enb-bevis-helper');
var browserSupport = [
'IE >= 9',
'Safari >= 5',
'Chrome >= 33',
'Opera >= 12.16',
'Firefox >= 28'
];
var bevisHelper = config.module('enb-bevis-helper')
.browserSupport(browserSupport)
.useAutopolyfiller();
};
- Теперь нужно настроить ноду. Для примера, приведу вариант настройки ноды
build/index. Это страница, которая строится из динамических данных на основе технологии priv-js
module.exports = function(config) {
config.includeConfig('enb-bevis-helper');
var browserSupport = [
'IE >= 9',
'Safari >= 5',
'Chrome >= 33',
'Opera >= 12.16',
'Firefox >= 28'
];
var bevisHelper = config.module('enb-bevis-helper')
.browserSupport(browserSupport)
.useAutopolyfiller();
config.setLanguages(['ru', 'en']);
config.node('build/index', function (nodeConfig) {
bevisHelper
.sourceDeps('index-page')
.forServerPage()
.configureNode(nodeConfig);
nodeConfig.addTech(require('./techs/priv-js'));
nodeConfig.addTarget('?.priv.js');
});
};
- Сконфигурировать статическую страницу. Она собирается на основе
btjson.js декларации
module.exports = function(config) {
config.includeConfig('enb-bevis-helper');
var browserSupport = [
'IE >= 9',
'Safari >= 5',
'Chrome >= 33',
'Opera >= 12.16',
'Firefox >= 28'
];
var bevisHelper = config.module('enb-bevis-helper')
.browserSupport(browserSupport)
.useAutopolyfiller();
config.setLanguages(['ru', 'en']);
config.node('build/index', function (nodeConfig) {
bevisHelper
.sourceDeps('index-page')
.forServerPage()
.configureNode(nodeConfig);
nodeConfig.addTech(require('./techs/priv-js'));
nodeConfig.addTarget('?.priv.js');
});
config.node('build/examples', function (nodeConfig) {
bevisHelper
.forStaticHtmlPage()
.configureNode(nodeConfig);
});
};
- Сконфигурировать тесты.
module.exports = function(config) {
config.includeConfig('enb-bevis-helper');
var browserSupport = [
'IE >= 9',
'Safari >= 5',
'Chrome >= 33',
'Opera >= 12.16',
'Firefox >= 28'
];
var bevisHelper = config.module('enb-bevis-helper')
.browserSupport(browserSupport)
.useAutopolyfiller();
config.setLanguages(['ru', 'en']);
config.node('build/index', function (nodeConfig) {
bevisHelper
.sourceDeps('index-page')
.forServerPage()
.configureNode(nodeConfig);
nodeConfig.addTech(require('./techs/priv-js'));
nodeConfig.addTarget('?.priv.js');
});
config.node('build/examples', function (nodeConfig) {
bevisHelper
.forStaticHtmlPage()
.configureNode(nodeConfig);
});
bevisHelper.configureUnitTests('test/client');
};
Примеры