Поддержка технологий, базирующихся на основе BEM-XJST, для ENB. Базовые шаблоны для BEMHTML и BEMTREE находятся в библиотеке bem-core.
Важно: для технологий, базовые шаблоны которых находятся в библиотеке bem-bl, следует использовать enb-xjst пакет.
$ npm install --save-dev enb-bemxjst
Для работы модуля требуется зависимость от пакета enb
версии 0.13.0
или выше.
Технологии с суффиксом old помимо JS-синтаксиса поддерживают ещё и первоначальный синтаксис.
Транслирование из первоначального в JS-синтаксис осуществляется с помощью bemhtml-compat.
Использовать технологии с суффиксом old
следует, когда действительно нужна поддержка первоначального синтаксиса, так как из-за транслирования сборка происходит медленнее, чем в аналогичных технологиях без суффикса.
Например, это может быть полезно при миграции c bem-bl на bem-core, чтобы не переписывать код всего проекта целиком, а поэтапно переходить на JS-синтаксис для каждого отдельного шаблона.
Важно: считается, что файлы с расширением *.xjst
могут быть написаны только в JS-синтаксисе. Транслирование для таких файлов проводиться не будет, даже если использовать old
-технологии.
Склеивает bemhtml.xjst
и bemhtml
-файлы по deps'ам, обрабатывает BEM-XJST-транслятором, сохраняет (по умолчанию) в виде ?.bemhtml.js
.
Опции
- String target — результирующий таргет. По умолчанию —
?.bemhtml.js
. - String filesTarget — files-таргет, на основе которого создаётся список исходных файлов (его предоставляет технология
files
). По умолчанию —?.files
. - String sourceSuffixes — суффиксы файлов, по которым строится
files
-таргет. По умолчанию —['bemhtml', 'bemhtml.xjst']
. - String exportName — имя переменной-обработчика BEMHTML. По умолчанию —
'BEMHTML'
. - Boolean devMode — development-режим. По умолчанию —
true
. - Boolean cache — кэширование. Возможно только в production-режиме. По умолчанию —
false
. - Object modulesDeps — хэш-объект, прокидывающий в генерируемую для скомпилированных шаблонов обвязку необходимые YModules-модули.
Пример
nodeConfig.addTech([ require('enb-bemxjst/techs/bemhtml'), { devMode: false } ]);
Склеивает BEMTREE-файлы по deps'ам, обрабатывает BEM-XJST-транслятором, сохраняет (по умолчанию) в виде ?.bemtree.js
.
Опции
- String target — результирующий таргет. По умолчанию —
?.bemtree.js
. - String filesTarget — files-таргет, на основе которого создаётся список исходных файлов (его предоставляет технология
files
). По умолчанию —?.files
. - String sourceSuffixes — суффиксы файлов, по которым строится
files
-таргет. По умолчанию —['bemtree']
. - String exportName — имя переменной-обработчика BEMTREE. По умолчанию —
'BEMTREE'
. - Boolean devMode — development-режим. По умолчанию —
true
. - Object modulesDeps — хэш-объект, прокидывающий в генерируемую для скомпилированных шаблонов обвязку необходимые YModules-модули.
Пример
nodeConfig.addTech([ require('enb-bemxjst/techs/bemtree'), { devMode: false } ]);
Собирает HTML-файл с помощью BEMJSON и BEMHTML.
Опции
- String bemhtmlFile — исходный BEMHTML-файл. По умолчанию —
?.bemhtml.js
. - String bemjsonFile — исходный BEMJSON-файл. По умолчанию —
?.bemjson.js
. - String target — результирующий HTML-файл. По умолчанию —
?.html
.
Пример
nodeConfig.addTech(require('enb-bemxjst/techs/html-from-bemjson'));
Собирает HTML-файл с помощью BEMJSON, BEMHTML, lang.all
и lang.{lang}
.
Опции
- String bemhtmlFile — исходный BEMHTML-файл. По умолчанию —
?.bemhtml.js
. - String bemjsonFile — исходный BEMJSON-файл. По умолчанию —
?.bemjson.js
. - String langAllFile — исходный langAll-файл. По умолчанию —
?.lang.all.js
. - String langFile — исходный lang-файл. По умолчанию —
?.lang.{lang}.js
. Если параметр lang не указан, берётся первый из объявленных в проекте языков. - String target — результирующий HTML-файл. По умолчанию —
?.{lang}.html
.
Пример
nodeConfig.addTech(require('enb-bemxjst/techs/html-from-bemjson-i18n'));