/enb-bembundle

Primary LanguageJavaScriptMIT LicenseMIT

enb-bembundle Build Status

Предоставляет технологии для сборки bembundle-модулей.

css-chunks

Из css-файлов по deps'ам, собирает css-chunks.js-файл, обрабатывая инклуды, ссылки. css-chunks.js-файлы нужны для создания bembundle-файлов или bembundle-страниц.

Технология bembundle активно используется в bem-tools для выделения из проекта догружаемых кусков функционала и стилей (js/css).

Опции

  • String target — Результирующий таргет. По умолчанию ?.css-chunks.js.
  • String filesTarget — files-таргет, на основе которого получается список исходных файлов (его предоставляет технология files). По умолчанию — ?.files.
  • String sourceSuffixes — суффиксы файлов, по которым строится files-таргет. По умолчанию — 'css'.

Пример

nodeConfig.addTech(require('enb-bembundle/techs/css-chunks'));

js-chunks

Из js-файлов по deps'ам, собирает js-chunks.js-файл. js-chunks.js-файлы нужны для создания bembundle-файлов или bembundle-страниц.

Технология bembundle активно используется в bem-tools для выделения из проекта догружаемых кусков функционала и стилей (js/css).

Опции

  • String filesTarget — files-таргет, на основе которого получается список исходных файлов (его предоставляет технология files). По умолчанию — ?.files.
  • String sourceSuffixes — суффиксы файлов, по которым строится files-таргет. По умолчанию — 'js'.
  • String target — Результирующий таргет. По умолчанию — ?.js-chunks.js.

Пример

nodeConfig.addTech(require('enb-bembundle/techs/js-chunks'));

js-bembundle-component

Собирает ?.bembundle.js-файл из ?.css-chunks.js и ?.js-chunks.js.

Используется вместе с deps-subtract, deps-provider, js-chunks, css-chunks для построения догружаемой части функционала сайта.

Опции

  • String cssChunksTargets — Имена css-chunks.js-таргетов, которые предоставляют CSS-чанки. По умолчанию — [ '?.css-chunks.js' ].
  • String jsChunksTargets — Имена js-chunks.js-таргетов, которые предоставляют JS-чанки. По умолчанию — [ '?.js-chunks.js' ].
  • String target — Результирующий таргет. По умолчанию — ?.bembundle.js.

Пример

nodeConfig.addTechs([
  [ require('enb-bembundle/techs/levels'), { levels: /* ... */ } ],
  require('enb-bembundle/techs/files'),
  [ require('enb-bembundle/techs/deps'), { depsTarget: 'router.tmp.deps.js' } ],
  [ require('enb-bembundle/techs/deps-provider'), { sourceNodePath: 'pages/index', depsTarget: 'index.deps.js' } ],
  [ require('enb-bembundle/techs/deps-subtract'), {
    subtractWhatTarget: 'index.deps.js',
    subtractFromTarget: 'router.tmp.deps.js',
    depsTarget: 'router.deps.js'
  } ],
  require('enb-bembundle/techs/css-chunks'),
  require('enb-bembundle/techs/js-chunks'),
  require('enb-bembundle/techs/js-bembundle-component')
]);

js-bembundle-component-i18n

Собирает ?.bembundle.<язык>.js-файл из ?.css-chunks.js, ?.js-chunks.lang.<язык>.js и ?.js-chunks.js.

Используется вместе с deps-subtract, deps-provider, js-chunks, i18n-lang-js-chunks, css-chunks для построения догружаемой части функционала сайта.

Имена результирующих файлов в данный момент не настраиваются (нет запросов на эту функцию).

Опции

  • String cssChunksTargets — Имена css-chunks.js-таргетов, которые предоставляют CSS-чанки. По умолчанию — [ '?.css-chunks.js' ].
  • String jsChunksTargets — Имена js-chunks.js-таргетов, которые предоставляют JS-чанки. По умолчанию — [ '?.js-chunks.js' ].
  • String target — Результирующий таргет. По умолчанию — ?.bembundle.{lang}.js.
  • String lang — Язык, для которого небходимо собрать файл.

Пример

nodeConfig.addTechs([
  [ require('enb-bembundle/techs/levels'), { levels: /* ... */ } ],
  require('enb-bembundle/techs/files'),
  [ require('enb-bembundle/techs/deps'), { depsTarget: 'router.tmp.deps.js' } ],
  [ require('enb-bembundle/techs/deps-provider'), { sourceNodePath: 'pages/index', depsTarget: 'index.deps.js' } ],
  [ require('enb-bembundle/techs/deps-subtract'), {
    subtractWhatTarget: 'index.deps.js',
    subtractFromTarget: 'router.tmp.deps.js',
    depsTarget: 'router.deps.js'
  } ],
  require('enb-bembundle/techs/css-chunks'),
  require('enb-bembundle/techs/js-chunks'),
  [ require('enb-bembundle/techs/i18n-merge-keysets'), { lang: 'all' } ],
  [ require('enb-bembundle/techs/i18n-merge-keysets'), { lang: '{lang}' } ],
  [ require('enb-bembundle/techs/i18n-lang-js-chunks'), { lang: 'all' } ],
  [ require('enb-bembundle/techs/i18n-lang-js-chunks'), { lang: '{lang}' } ],
  [ require('enb-bembundle/techs/js-bembundle-component-i18n'), { lang: '{lang}' } ]
]);

js-bembundle-page

Собирает страничный ?.js-файл из ?.css-chunks.js и ?.js-chunks.js.

Результирующий файл готов к догрузке кода из бандлов (JS и CSS, приходящий из бандлов, повторно не выполняется на странице).

Опции

  • String cssChunksTargets — Имена css-chunks.js-таргетов, которые предоставляют CSS-чанки. По умолчанию — [ '?.css-chunks.js' ].
  • String jsChunksTargets — Имена js-chunks.js-таргетов, которые предоставляют JS-чанки. По умолчанию — [ '?.js-chunks.js' ].
  • String target — Результирующий таргет. По умолчанию — ?.js.

Пример

nodeConfig.addTechs([
  /* ... */
  require('enb-bembundle/techs/css-chunks'),
  require('enb-bembundle/techs/js-chunks'),
  require('enb-bembundle/techs/js-bembundle-page')
]);

js-bembundle-page-i18n

Собирает страничный ?.<язык>.js-файл из ?.css-chunks.js, ?.js-chunks.lang.<язык>.js и ?.js-chunks.js.

Используется вместе с deps-subtract, deps-provider, js-chunks, i18n-lang-js-chunks, css-chunks для построения догружаемой части функционала сайта.

Опции

  • String cssChunksTargets — Имена css-chunks.js-таргетов, которые предоставляют CSS-чанки. По умолчанию — [ '?.css-chunks.js' ].
  • String jsChunksTargets — Имена js-chunks.js-таргетов, которые предоставляют JS-чанки. По умолчанию — [ '?.js-chunks.js' ].
  • String target — Результирующий таргет. По умолчанию — ?.bembundle.{lang}.js.
  • String lang — Язык, для которого небходимо собрать файл.

Пример

nodeConfig.addTechs([
  /* ... */
  require('enb-bembundle/techs/css-chunks'),
  require('enb-bembundle/techs/js-chunks'),
  [ require('enb-bembundle/techs/i18n-merge-keysets'), { lang: 'all' } ],
  [ require('enb-bembundle/techs/i18n-merge-keysets'), { lang: '{lang}' } ],
  [ require('enb-bembundle/techs/i18n-lang-js-chunks'), { lang: 'all' } ],
  [ require('enb-bembundle/techs/i18n-lang-js-chunks'), { lang: '{lang}' } ],
  [ require('enb-bembundle/techs/js-bembundle-page-i18n'), { lang: '{lang}' } ]
]);