Download - Марат Дулин — ENB — сборщик проектов на БЭМ
![Page 1: Марат Дулин — ENB — сборщик проектов на БЭМ](https://reader031.vdocuments.site/reader031/viewer/2022013102/55945dcd1a28ab270c8b47c5/html5/thumbnails/1.jpg)
![Page 2: Марат Дулин — ENB — сборщик проектов на БЭМ](https://reader031.vdocuments.site/reader031/viewer/2022013102/55945dcd1a28ab270c8b47c5/html5/thumbnails/2.jpg)
ENB — сборщик проектов на БЭММарат ДулинBEMup в рамках YaC 2013, Москва
![Page 3: Марат Дулин — ENB — сборщик проектов на БЭМ](https://reader031.vdocuments.site/reader031/viewer/2022013102/55945dcd1a28ab270c8b47c5/html5/thumbnails/3.jpg)
ENB
Высокая скорость сборки для больших проектов
Детальная настройка сборки
Гибкая система кэширования
3
![Page 4: Марат Дулин — ENB — сборщик проектов на БЭМ](https://reader031.vdocuments.site/reader031/viewer/2022013102/55945dcd1a28ab270c8b47c5/html5/thumbnails/4.jpg)
История ENB
Ускорение сборки в Картах
Конфигурация для технологий
Ускорение bem-tools
4
![Page 5: Марат Дулин — ENB — сборщик проектов на БЭМ](https://reader031.vdocuments.site/reader031/viewer/2022013102/55945dcd1a28ab270c8b47c5/html5/thumbnails/5.jpg)
Скорость
Разбиение крупных технологий на более мелкие
Переиспользование промежуточных данных
Кэширование неизменяемых данных
5
![Page 6: Марат Дулин — ENB — сборщик проектов на БЭМ](https://reader031.vdocuments.site/reader031/viewer/2022013102/55945dcd1a28ab270c8b47c5/html5/thumbnails/6.jpg)
Асинхронность
Полная асинхронность
Использованы более быстрые библиотеки (vow вместо Q)
В субпроцессы выделены тяжелые технологии (bemhtml)
6
![Page 7: Марат Дулин — ENB — сборщик проектов на БЭМ](https://reader031.vdocuments.site/reader031/viewer/2022013102/55945dcd1a28ab270c8b47c5/html5/thumbnails/7.jpg)
Настраиваемость
Настройки для технологий
Переиспользование технологий с разными настройками
Все этапы сборки выделены в технологии
7
![Page 8: Марат Дулин — ENB — сборщик проектов на БЭМ](https://reader031.vdocuments.site/reader031/viewer/2022013102/55945dcd1a28ab270c8b47c5/html5/thumbnails/8.jpg)
Настраиваемость технологий
Исходные файлы
Результирующие файлы
Дополнительные параметры
8
![Page 9: Марат Дулин — ENB — сборщик проектов на БЭМ](https://reader031.vdocuments.site/reader031/viewer/2022013102/55945dcd1a28ab270c8b47c5/html5/thumbnails/9.jpg)
Сборка страницы
9
nodeConfig.addTechs([ [require('enb/techs/levels'), {levels: getLevels(config)}], [require('enb/techs/file-provider'), {target: '?.bemdecl.js'}], require('enb/techs/files'), require('enb/techs/deps'), [require('enb/techs/js'), {target: 'hello.js'}], [require('enb/techs/css'), {target: 'world.css'}]]);nodeConfig.addTargets('hello.js', 'world.css');
![Page 10: Марат Дулин — ENB — сборщик проектов на БЭМ](https://reader031.vdocuments.site/reader031/viewer/2022013102/55945dcd1a28ab270c8b47c5/html5/thumbnails/10.jpg)
Разработка технологий
10
module.exports = require('../lib/build-flow').create() .name('js') .target('target', '?.js') .useFileList('js') .justJoinFilesWithComments() .createTech();
![Page 11: Марат Дулин — ENB — сборщик проектов на БЭМ](https://reader031.vdocuments.site/reader031/viewer/2022013102/55945dcd1a28ab270c8b47c5/html5/thumbnails/11.jpg)
Разработка технологий
11
var Vow = require('vow');var vowFs = require('vow-fs');module.exports = require('enb/lib/build-flow').create() .name('js') .target('target', '?.js').useFileList('js') .builder(function(jsFiles) { var node = this.node; return Vow.all(jsFiles.map(function(file) { return vowFs.read(file.fullname, 'utf8').then(function(data) { var filename = node.relativePath(file.fullname); return '/* begin: ' + filename + ' */\n' + data + '\n/* end: ' + filename + ' */'; }); })).then(function(contents) { return contents.join('\n'); }); }).createTech();
![Page 12: Марат Дулин — ENB — сборщик проектов на БЭМ](https://reader031.vdocuments.site/reader031/viewer/2022013102/55945dcd1a28ab270c8b47c5/html5/thumbnails/12.jpg)
Существующие технологииbemdecl-from-bemjson
bemdecl-from-deps-by-tech
bemdecl-merge
bemdecl-provider
bemdecl-test
borschik
browser-js
css-borschik-chunks
css-chunks
css-ie-includes
css-ie
css-ie6
css-ie7
css-ie8
css-ie9
css-includes
css-less
css-stylus-with-nib
css-stylus
css
deps-merge
deps-old
deps-provider
deps-subtract
deps
file-copy
file-merge
file-provider
files
html-from-bemjson-i18n
html-from-bemjson
i18n-keysets-xml
i18n-lang-js-chunks
i18n-lang-js
i18n-merge-keysets
js-bembundle-component-i18n
js-bembundle-component
js-bembundle-page-i18n
js-bembundle-page
js-chunks
js-expand-includes
js-i18n
js-includes
js-test
js
levels
node-js
priv-js-i18n-all
priv-js-i18n
priv-js
pub-js-i18n
symlink
vanilla-js
xsl-2lego
xsl-convert2xml
xsl-html5-i18n
xsl-html5
xsl
xslt
12
![Page 13: Марат Дулин — ENB — сборщик проектов на БЭМ](https://reader031.vdocuments.site/reader031/viewer/2022013102/55945dcd1a28ab270c8b47c5/html5/thumbnails/13.jpg)
Модули для ENB
enb-bemhtml
enb-bemxjst
enb-modules
grunt-enb
13
![Page 14: Марат Дулин — ENB — сборщик проектов на БЭМ](https://reader031.vdocuments.site/reader031/viewer/2022013102/55945dcd1a28ab270c8b47c5/html5/thumbnails/14.jpg)
Комьюнити
Подробная документация
Принято 25 пулл-реквестов
Пакеты enb-bemhtml, enb-bemxjst поддерживаются внешним разработчиком
http://github.com/enb-make/enb
14
![Page 15: Марат Дулин — ENB — сборщик проектов на БЭМ](https://reader031.vdocuments.site/reader031/viewer/2022013102/55945dcd1a28ab270c8b47c5/html5/thumbnails/15.jpg)
Спасибо за внимание
![Page 16: Марат Дулин — ENB — сборщик проектов на БЭМ](https://reader031.vdocuments.site/reader031/viewer/2022013102/55945dcd1a28ab270c8b47c5/html5/thumbnails/16.jpg)
16
@mdevilsmdevils
Марат ДулинТехнический лидергруппы интерфейсов геопоиска