πŸš€ DAY 5 OF LAUNCH WEEK: Introducing Socket Firewall Enterprise.Learn more β†’
Socket
Book a DemoInstallSign in
Socket

enb-bemxjst

Package Overview
Dependencies
Maintainers
5
Versions
122
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

enb-bemxjst

bem-xjst support for ENB

latest
Source
npmnpm
Version
8.10.6
Version published
Maintainers
5
Created
Source

enb-bemxjst

NPM version Build Status Build status Coverage Status Dependency Status

ΠŸΠ°ΠΊΠ΅Ρ‚ прСдоставляСт Π½Π°Π±ΠΎΡ€ ENB-Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ для сборки BEMTREE- ΠΈ BEMHTML-шаблонов Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, построСнных ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π‘Π­Πœ.

Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° enb-bemxjst:

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈ ΠΈΡ… API описаны Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅ API Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ.

Π‘ΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ: Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° enb-bemxjst ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ компилятор BEM-XJST. ΠœΠ°ΠΆΠΎΡ€Π½Π°Ρ вСрсия enb-bemxjst всСгда совпадаСт с ΠΌΠ°ΠΆΠΎΡ€Π½ΠΎΠΉ вСрсиСй bem-xjst.

Установка

УстановитС ΠΏΠ°ΠΊΠ΅Ρ‚ enb-bemxjst:

$ npm install --save-dev enb-bemxjst

ВрСбования: Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ ΠΏΠ°ΠΊΠ΅Ρ‚Π° enb вСрсии 0.16.0 ΠΈ Π²Ρ‹ΡˆΠ΅.

ΠžΠ±Π·ΠΎΡ€ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°

Быстрый старт

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ: bemtree, bemhtml.

var BemtreeTech = require('enb-bemxjst/techs/bemtree'),
    BemhtmlTech = require('enb-bemxjst/techs/bemhtml'),
    FileProvideTech = require('enb/techs/file-provider'),
    bemTechs = require('enb-bem-techs');

 module.exports = function(config) {
     config.node('bundle', function(node) {
         // ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ FileList
         node.addTechs([
             [FileProvideTech, { target: '?.bemdecl.js' }],
             [bemTechs.levels, { levels: ['blocks'] }],
             bemTechs.deps,
             bemTechs.files
         ]);

         // Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ BEMTREE-Ρ„Π°ΠΉΠ»
         node.addTech(BemtreeTech);
         node.addTarget('?.bemtree.js');

         // Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ BEMHTML-Ρ„Π°ΠΉΠ»
         node.addTech(BemhtmlTech);
         node.addTarget('?.bemhtml.js');
     });
 };

Для сборки HTML ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ bemjson-to-html.

var BemjsonToHtmlTech = require('enb-bemxjst/techs/bemjson-to-html'),
    BemhtmlTech = require('enb-bemxjst/techs/bemhtml'),
    FileProvideTech = require('enb/techs/file-provider'),
    bemTechs = require('enb-bem-techs');

module.exports = function(config) {
    config.node('bundle', function(node) {
        // ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ BEMJSON-Ρ„Π°ΠΉΠ»
        node.addTech([FileProvideTech, { target: '?.bemjson.js' }]);

        // ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ FileList
        node.addTechs([
            [bemTechs.levels, { levels: ['blocks'] }],
            [bemTechs.bemjsonToBemdecl],
            [bemTechs.deps],
            [bemTechs.files]
        ]);

        // Π‘ΠΎΠ±ΠΈΡ€Π°Π΅ΠΌ BEMHTML-Ρ„Π°ΠΉΠ»
        node.addTech(BemhtmlTech);
        node.addTarget('?.bemhtml.js');

        // Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ HTML-Ρ„Π°ΠΉΠ»
        node.addTech(BemjsonToHtmlTech);
        node.addTarget('?.html');
    });
};

Π Π°Π±ΠΎΡ‚Π° с тСхнологиями

По Π‘Π­Πœ-ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Π±Π»ΠΎΠΊΡƒ хранятся Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ .bemtree.js ΠΈ .bemhtml.js Π² дирСкториях Π±Π»ΠΎΠΊΠΎΠ². Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΈΡ… исходныС Ρ„Π°ΠΉΠ»Ρ‹.

ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ с шаблонами (.bemtree.js ΠΈΠ»ΠΈ .bemhtml.js) ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‚ΡΡ Π² ΠΎΠ΄ΠΈΠ½ ΠΎΠ±Ρ‰ΠΈΠΉ Ρ„Π°ΠΉΠ» (?.bemtree.js ΠΈΠ»ΠΈ ?.bemhtml.js) с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ:

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ β€” скомпилированный Ρ„Π°ΠΉΠ» ?.bemhtml.js ΠΈΠ»ΠΈ ?.bemtree.js β€” ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ Π² зависимости ΠΎΡ‚ наличия ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΉ систСмы ΠΈ Π΅Π΅ Ρ‚ΠΈΠΏΠ° Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… случаях:

ИсполнСниС шаблонов в Node.js

Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ CommonJS.

var BEMTREE = require('bundle.bemtree.js').BEMTREE, // ΠŸΡƒΡ‚ΡŒ Π΄ΠΎ скомпилированного BEMTREE-Ρ„Π°ΠΉΠ»Π°
    BEMHTML = require('bundle.bemhtml.js').BEMHTML; // ΠŸΡƒΡ‚ΡŒ Π΄ΠΎ скомпилированного BEMHTML-Ρ„Π°ΠΉΠ»Π°

var bemjson = BEMTREE.apply({ block: 'page', data: { /* ... */ } }),
    html = BEMHTML.apply(bemjson); // <html>...</html>

ИсполнСниС шаблонов Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅

Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π½Π° страницу ΠΊΠ°ΠΊ JavaScript-Ρ„Π°ΠΉΠ».

<script src="bundle.bemtree.js"></script>
<script src="bundle.bemhtml.js"></script>

Π’ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ способы исполнСния шаблонов зависят ΠΎΡ‚ наличия ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΉ систСмы:

  • Π‘Π΅Π· ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΉ систСмы

    Π¨Π°Π±Π»ΠΎΠ½Ρ‹ доступны ΠΈΠ· глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ BEMTREE ΠΈΠ»ΠΈ BEMHTML.

    var bemjson = BEMTREE.apply({ block: 'page', data: { /* ... */ } }),
        html = BEMHTML.apply(bemjson); // <html>...</html>
    
  • Π‘ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΉ систСмой YModules

    Π¨Π°Π±Π»ΠΎΠ½Ρ‹ доступны ΠΈΠ· ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΉ систСмы (YModules):

    modules.require(['BEMTREE', 'BEMHTML'], function(BEMTREE, BEMHTML) {
        var bemjson = BEMTREE.apply({ block: 'page', data: { /* ... */ } }),
            html = BEMHTML.apply(bemjson); // <html>...</html>
    });
    

ИспользованиС шаблонов для сборки HTML

HTML – Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ примСнСния скомпилированного шаблона ΠΊ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ BEMJSON-Ρ„Π°ΠΉΠ»Ρƒ.

Π‘Π±ΠΎΡ€ΠΊΠ° HTML (Ρ„Π°ΠΉΠ» ?.html) с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ enb-bemxjst ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π² Π΄Π²Π° этапа:

  • Π€Π°ΠΉΠ» ?.bemhtml.js собираСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ bemhtml.
  • BEMJSON ΠΈ скомпилированный ?.bemhtml.js-Ρ„Π°ΠΉΠ» ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ bemjson-to-html, которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ HTML-Ρ„Π°ΠΉΠ» (?.html).

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠ°ΠΊΠ΅Ρ‚Π°

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ

Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ bemtree ΠΈ bemhtml ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ сторонних Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΊΠ°ΠΊ глобально, Ρ‚Π°ΠΊ ΠΈ для Ρ€Π°Π·Π½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Ρ… систСм с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΡ†ΠΈΠΈ requires.

Для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π² зависимости ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΉ систСмы:

  • имя глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ;
  • имя модуля ΠΈΠ· YModules;
  • ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ для CommonJS.
{
    requires: {
        'lib-name': {
            globals: 'libName',           // НазваниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² глобальной видимости
            ym: 'lib-name',               // Имя модуля ΠΈΠ· YModules
            commonJS: 'path/to/lib-name'  // ΠŸΡƒΡ‚ΡŒ ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ CommonJS ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ собираСмого Ρ„Π°ΠΉΠ»Π°
        }
    }
}

Π’ ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ… ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ доступны с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° this.require, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

block('button').content()(function () {
    var lib = this.require('lib-name');

    return lib.hello();
});

НС ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ всС ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Π΅ систСмы для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ зависимости глобально. Π’ этом случаС ΠΌΠΎΠ΄ΡƒΠ»ΡŒ всСгда Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΈΠ· глобальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π΄Π°ΠΆΠ΅ Ссли Π² срСдС исполнСния Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Π°Ρ систСма.

{
    requires: {
        'lib-name': {
            globals: 'dependName' // НазваниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² глобальной видимости
        }
    }
}

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ moment

УказываСтся ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ:

{
    requires: {
        moment: {
            commonJS: 'moment',  // ΠŸΡƒΡ‚ΡŒ ΠΊ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ CommonJS ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ собираСмого Ρ„Π°ΠΉΠ»Π°
        }
    }
}

Π’ ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ… ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ доступСн с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° this.require('moment'). Код шаблона ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ для исполнСния Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ ΠΈ Π² Node.js:

block('post').elem('data').content()(function () {
    var moment = this.require('moment'),  // Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° `moment`

    // ВрСмя Π² миллисСкундах, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ с сСрвСра
    return moment(ctx.param.date).format('YYYY-MM-DD HH:mm:ss');
});

Бинтаксис

БущСствуСт Π΄Π²Π° синтаксиса для BEMHTML-шаблонов:

Π‘ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° выпуска Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ bem-core сокращСнный синтаксис шаблонов считаСтся ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌ ΠΈ большС Π½Π΅ поддСрТиваСтся.

О ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ… ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° JS-синтаксис Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π² руководствС ΠΏΠΎ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ.

Π˜Π½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡ

Базовая рСализация BEM-XJST-Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Π½Π΅ содСрТит шаблонов для ΠΈΠ½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ (i18n).

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ i18n Π² ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ…, слСдуСт ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ BEM.I18N ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ сторонними Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ.

BEM.I18N β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для ΠΈΠ½Ρ‚Π΅Ρ€Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π±Π»ΠΎΠΊΠΎΠ². Π―Π΄Ρ€ΠΎ находится Π² keyset-Ρ„Π°ΠΉΠ»Π°Ρ… Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π±Π»ΠΎΠΊΠΎΠ²:

ПослС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ BEM.I18N Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ доступна Π² ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° this.require:

block('button').elem('tooltip').content()(function () {
    var i18n = this.require('i18n'),  // Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° `BEM.I18N`

    // Π›ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для ΠΊΠ»ΡŽΡ‡Π° `tooltip`
    return i18n('button', 'tooltip');
});

ИспользованиС ΠΊΠ°Ρ€Ρ‚ ΠΊΠΎΠ΄Π°

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½Π° вашСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π²Ρ‹Π²ΠΎΠ΄ ошибок Π² BEMHTML- ΠΈ BEMTREE- ΡˆΠ°Π±Π»ΠΎΠ½Π°Ρ… с использованиСм ΠΊΠ°Ρ€Ρ‚ ΠΊΠΎΠ΄Π° (ошибка Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π΅ Π½Π° собранный Ρ„Π°ΠΉΠ», Π° Π½Π° исходный Ρ„Π°ΠΉΠ» с шаблоном) Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ enb-bemxjst вСрсии 8.9.0 ΠΈ Π²Ρ‹ΡˆΠ΅.

Π’ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ .enb/make Π½Π° вашСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Ρƒ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ bemhtml/bemtree Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° опция sourcemaps: true. ΠΠ°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ эту ΠΎΠΏΡ†ΠΈΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π½ΠΎ Π½Π΅ Π² ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ΅Π½Π΅.

'use strict';

const techs = {
    bemhtml: require('enb-bemxjst/techs/bemhtml'),
    ...
};

module.exports = function(config) {
    config.nodes('pages/all', function(nodeConfig) {
        nodeConfig.addTechs([
            // bemhtml
            [techs.bemhtml, {
                target: '?.bemhtml.js',
                sourcemap: env === 'development',
                engineOptions: {
                    production: env === 'production',
                    omitOptionalEndTags: true,
                    unquotedAttrs: true,
                    elemJsInstances: true
                }
            }]
        ]);

        nodeConfig.addTargets(['?.bemhtml.js']);
    });
});

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ докумСнтация

ЛицСнзия

Β© 2013 YANDEX LLC. Код Π»ΠΈΡ†Π΅Π½Π·ΠΈΡ€ΠΎΠ²Π°Π½ Mozilla Public License 2.0.

FAQs

Package last updated on 07 Sep 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts