enb-bevis-helper v3.2.0
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.jsmodule.exports = function(config) { };Подключить конфиг
enb-bevis-helpermodule.exports = function(config) { config.includeConfig('enb-bevis-helper'); };Настроить
enb-bevis-helpermodule.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(); // Будем использовать Autopolyfiller.js };Теперь нужно настроить ноду. Для примера, приведу вариант настройки ноды
build/index. Это страница, которая строится из динамических данных на основе технологииpriv-jsmodule.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') // Нода будет искать зависимости внутри блока 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'); };