Code Monkey home page Code Monkey logo

enb-bemxjst's Introduction

enb-bemxjst

NPM version Build Status Dependency Status

Поддержка технологий, базирующихся на основе BEM-XJST, для ENB. Базовые шаблоны для BEMHTML и BEMTREE находятся в библиотеке bem-core.

Важно: для технологий, базовые шаблоны которых находятся в библиотеке bem-bl, следует использовать enb-xjst пакет.

Установка

$ npm install --save-dev enb-bemxjst

Для работы модуля требуется зависимость от пакета enb версии 0.13.0 или выше.

Технологии

Зачем нужны *-old-технологии?

Технологии с суффиксом old помимо JS-синтаксиса поддерживают ещё и первоначальный синтаксис.

Транслирование из первоначального в JS-синтаксис осуществляется с помощью bemhtml-compat.

Использовать технологии с суффиксом old следует, когда действительно нужна поддержка первоначального синтаксиса, так как из-за транслирования сборка происходит медленнее, чем в аналогичных технологиях без суффикса. Например, это может быть полезно при миграции c bem-bl на bem-core, чтобы не переписывать код всего проекта целиком, а поэтапно переходить на JS-синтаксис для каждого отдельного шаблона.

Важно: считается, что файлы с расширением *.xjst могут быть написаны только в JS-синтаксисе. Транслирование для таких файлов проводиться не будет, даже если использовать old-технологии.

bemhtml & bemhtml-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 & bemtree-old

Склеивает 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-from-bemjson

Собирает 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-from-bemjson-i18n

Собирает 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'));

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.