Войти с помощью github

Например я установил bem-bemtree-project-stub теперь хочу прикрутить сетку bem-grid. Как правильно стыковать данные сборки, чтобы они не ломали друг друга? Просто ставить поверх в ту же деректорию или как? Прошу не ограничиваться данными сборками. Меня интересует общий принцип соединения bem решений.

Всем привет. В проекте на project-stub'е решил использовать сетку bem-grid . Сделал следующее:

$ git clone https://github.com/bem-incubator/bem-grid.git
$ cd bem-grid
$ npm install

Добавил необходимые уровни из bem-grid в файл make.js:

{ path: 'libs/bem-grid/common.blocks', check: false },

Пример из доков:

 {
block : 'row',
content : [
       {
        elem : 'col',
        mods : { mw : 6 },
        content : 'left column'
    },
    {
        elem : 'col',
        mods : { mw : 6 },
        content : 'right column'
       }
   ]
}

не работает. mods : { mw : 6 } нет.

В посте https://ru.bem.info/forum/686/#comment-153710450 я хотел узнать какую сетку ставить на БЭМ лучше. Определился c bem grid. НО... Как я не старался у меня не получилась ее нормально установить в project-stub У кого есть пошаговая инструкция по установке этой сетки. Хотя бы в двух-трех шагах, чтобы проверить все действия на практике.

PS: Мне нравится идея БЭМ, но пока что я не могу к ней приблизиться и на шаг.

Заранее большое спасибо!

Пока делаю первое тестовое задание и сразу возникает вопрос. Как понять в каком месте кода возникает ошибка? Из того, что выдает страничка, мне сложно сделать какие-то выводы.

Собственно сообщение об ошибке:

SyntaxError: Unexpected token { at exports.runInThisContext (vm.js:53:16) at Module._compile (module.js:413:25) at Object.Module._extensions..js (module.js:452:10) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12) at Module.require (module.js:365:17) at require (module.js:384:17) at doRequire (C:\Users\nut707\Desktop\test-project\node_modules\enb-bem-techs\node_modules\enb-async-require\lib\async-require.js:23:30) at C:\Users\nut707\Desktop\test-project\node_modules\enb-bem-techs\node_modules\enb-async-require\lib\async-require.js:35:9 at Object.Promise (C:\Users\nut707\Desktop\test-project\node_modules\enb-bem-techs\node_modules\vow\lib\vow.js:308:9)

Приветствую! Где должны располагаться стили и какое должно быть имя файла, чтобы собрался файл index.ie.css?

Добрый день! При запуске bem server и переходе по ссылке http://0.0.0.0:8080 выдает ошибку

17:21:43.279 - [rebuild] [desktop.bundles/index/index.bemjson.js] file-provider 17:21:43.307 - [failed] [desktop.bundles/index/index.levels] levels 17:21:43.308 - [failed] [desktop.bundles/index/index.files] files 17:21:43.308 - [failed] [desktop.bundles/index/index.deps.js] deps 17:21:43.308 - [failed] [desktop.bundles/index/index.bemhtml.files] files 17:21:43.308 - [failed] [desktop.bundles/index/index.bemhtml.deps.js] deps 17:21:43.309 - [failed] [desktop.bundles/index/index.bemhtml.bemdecl.js] deps-by-tech-to-bemdecl 17:21:43.309 - [failed] [desktop.bundles/index/index.bemhtml.js] bemhtml 17:21:43.309 - [failed] [desktop.bundles/index/index.css] stylus 17:21:43.309 - [failed] [desktop.bundles/index/index.browser.js] browser-js 17:21:43.309 - [failed] [desktop.bundles/index/index.browser.bemhtml.js] bemhtml 17:21:43.311 - [rebuild] [desktop.bundles/index/index.bemdecl.js] bemjson-to-bemdecl 17:21:43.312 - [failed] [desktop.bundles/index/index.html] bemjson-to-html 17:21:43.312 - [failed] [desktop.bundles/index/index.min.css] borschik 17:21:43.312 - [failed] [desktop.bundles/index/index.pre.js] file-merge 17:21:43.313 - [failed] [desktop.bundles/index/index.js] prepend-modules Error: ENOENT: no such file or directory, scandir '/home/dbimok/Документы/bem-new/libs/bem-core/common.blocks' at Error (native) at Object.fs.readdirSync (fs.js:813:18) at module.exports.inherit.load (/home/dbimok/Документы/bem-new/node_modules/enb-bem-techs/lib/levels/level.js:212:28) at /home/dbimok/Документы/bem-new/node_modules/enb-bem-techs/techs/levels.js:110:38 at Array.map (native) at /home/dbimok/Документы/bem-new/node_modules/enb-bem-techs/techs/levels.js:109:42 at Array. (/home/dbimok/Документы/bem-new/node_modules/enb/node_modules/vow/lib/vow.js:202:56) at Immediate.callFns as _onImmediate at processImmediate as _immediateCallback

В чем может быть проблема?

На видеосеминарах в большинстве случает используется project-stub. Когда Гаврюшин презентовал generator-bem-stub, то он сказал, что данная сборка универсальна и предпочтительнее. Почему же вы не используете её на вебинарах? И в чем разница?

Не помню, чтобы хотя бы один проект установился у меня без проблем. Работаю на Linux Mint 16. Есть ли какое-то руководство по решению проблем связанных с установкой?

Вот список некоторых проблем с которыми я сталкиваюсь:

  1. Клонирование через http не проходит использую только git clone https...
  2. Установка проходит обычно с sudo ... а без него какая-нибудь директория оказывается недоступной.
  3. В процессе вываливается ошибка типа Error: Cannot find module.
  4. Текущая версия nodejs конфликтует.

На всех видео семинарах, что я смотрел ваши сотрудники ставят проекты с пол пинка. Мне же приходится "рожать" каждую установку. Хотя у меня установлены все менеджеры пакетов типа npm и bower и прочие пакеты, которые я установил глобально. Все равно установка спотыкается.

Ставил несколько сборок и заметил, что после всех npm install и подобных команд не устанавливаются библиотеки bem-core и bem-components. Ставлю вручную, работает. Хотя в generator-project-stub выбираю установить bem-components.

Второй вопрос. Можно ли один раз скачать библиотеки, а потом просто указывать путь до них? Если да, то в какой файл и как правильно прописать путь, дабы экономить время и место?

В стандартном project-stub не указано что можно создать папку в desktop.bundles/*/blocks и блок оттуда подтянется. Где это поведение по умолчанию можно изменить?

На данный момент у меня в этой папке лежат блоки релевантные текущему бандлу. Хочу настроить сборку только этих блоков в отдельные технологии css и js.

Не устанавливается генератор generator-bem-stub, выводит

$ npm install -g generator-bem-stub npm WARN deprecated CSSselect@0.4.1: the module is now available as 'css-select' npm WARN deprecated CSSwhat@0.4.7: the module is now available as 'css-what' C:\Users\user\AppData\Roaming\npm ├── generator-bem-stub@0.11.0 └── UNMET PEER DEPENDENCY yo@>=1.0.0

npm WARN EPEERINVALID generator-bem-stub@0.11.0 requires a peer of yo@>=1.0.0 but none was installed.

Хотя Yo установлен глобально и без ошибок.

Всем привет.

Запускаем новый проект, все предыдущие устанавливали через generator-bem-stub в качестве сборщика использовали bem-tools, проблем не было. Сегодня пытаемся установить и встретились с проблемой такого характера:

TypeError: undefined is not a function at module.exports.require.create.name.target.methods._compileBEMXJST (E:\Server\Makeup\branch2\node_modules\enb-bemxjst\techs\bem-xjst.js:122:35) at Array. (E:\Server\Makeup\branch2\node_modules\enb-bemxjst\node_modules\vow\lib\vow.js:711:39) at Immediate.callFns as _onImmediate at processImmediate as _immediateCallback

Всем привет!

Пытаюсь разобраться в работе модуля enb-bem-i18n на примере project-stub. Для эксперимента использую блок calendar, точнее его элемент title https://github.com/Sergei-b84/calendar

{
block: 'calendar',
mods: { theme: 'ls' },
switchers: ['', '']
 },

Очередность моих действий:

  • Установил модуль следующей командой:

    npm install --save-dev enb-bem-i18n
    
    • Изменил код шаблона calendar__title.bemhtml

c

 block('calendar').elem('title')(
content()(function(){
    var monthName = [
        'January',
        'February',
        'March',
        'April',
        'May',
        'June',
        'July',
        'August',
        'September',
        'October',
        'November',
        'December'
    ];

    var date = this._date;
    var title = monthName[date.getMonth()] + ' '  + date.getFullYear();

        return title;
    })
);

на

    block('calendar').elem('title')(
match(function () { return this.ctx.date; }).content()(function () {
    var date = new Date(this.ctx.date),
        i18n = BEM.I18N,
        month = [
        i18n('calendar__title', 'jan'),
        i18n('calendar__title', 'feb'),
        i18n('calendar__title', 'mar'),
        i18n('calendar__title', 'apr'),
        i18n('calendar__title', 'may'),
        i18n('calendar__title', 'jun'),
        i18n('calendar__title', 'jul'),
        i18n('calendar__title', 'aug'),
        i18n('calendar__title', 'sep'),
        i18n('calendar__title', 'oct'),
        i18n('calendar__title', 'nov'),
        i18n('calendar__title', 'dec')
        ];

    var title = month[date.getMonth()] + ' '  + date.getFullYear();
    return title;

     })
);

Теперь, для того чтобы все заработало, я как понимаю, мне нужно указать язык по умолчанию в каком-то конфиге и сделать какие-то изменения в .enb/make.js . Опишите, пожалуйста, подробно как это сделать на примере project-stub. ( как выглядит конфиг, куда кладем, где подключаем и какие пишем изменения в make.js) Спасибо.

Всем привет. Знаю, тема заезжена, но сам никак не осилю. Пытаюсь собрать проект с enb. Для блока page в page.deps.js указываю mustDeps: { block: 'normalize' }, В файле normalize/normalize.css идёт простой инклуд css файла из libs/. И он не включаются в css файл. Что я делаю не так?

Почему часто дописывая новое свойство в препроцессор styl, у меня все ломается. Перезапуск сервера ничего не решает. Проблема иногда решается переименованием блока, и всегда решается установкой модификатора. Может есть какая-то команда для обновления стилей, а я ее пропустил, прослушивая лекции. Нехочится плодить модификаторы для общих свойств всего блока. P.S. Да и firebug это новое свойство тоже не видит.

Написал небольшое дополнение к официальной документации project-stub. Опубликовал на Яндекс.Диск: https://yadi.sk/i/Sj3R7SCriAXyM

Всем привет. Собираю БЭМ-проект по описанию zxqfox https://ru.bem.info/forum/175/ Далее запускаю сервер с помощью ENB: Проверяю результат по ссылке http://lookingschools.com:8080/desktop.bundles/index/index.html Открывается страница с примерами блоков библиотеки. Только вот селекты какие-то кривые. При нажатии страница мерцает. Подскажите, что не так и где править? Если делаю так: git clone https://github.com/bem/project-stub.git --depth 1 --branch v1.0.0 start-project cd start-project npm install , то все отрабатывает отлично. Но так как у меня php проект, пользуюсь описанием zxqfox.

Выводит ошибки при обновление страницы.

06:51:29.335 - [failed] [desktop.bundles/index/index.html] html-from-bemjson RangeError: Maximum call stack size exceeded at $b114 (/home/rtx/pr/start-project/desktop.bundles/index/index.bemhtml.js:1104:17) at applyc (/home/rtx/pr/start-project/desktop.bundles/index/index.bemhtml.js:111:20) at $b114 (/home/rtx/pr/start-project/desktop.bundles/index/index.bemhtml.js:1121:5) at applyc (/home/rtx/pr/start-project/desktop.bundles/index/index.bemhtml.js:111:20) at $b114 (/home/rtx/pr/start-project/desktop.bundles/index/index.bemhtml.js:1121:5) at applyc (/home/rtx/pr/start-project/desktop.bundles/index/index.bemhtml.js:111:20) at $b114 (/home/rtx/pr/start-project/desktop.bundles/index/index.bemhtml.js:1121:5) at applyc (/home/rtx/pr/start-project/desktop.bundles/index/index.bemhtml.js:111:20) at __$b114 (/home/rtx/pr/start-project/desktop.bundles/index/index.bemhtml.js:1121:5) at applyc (/home/rtx/pr/start-project/desktop.bundles/index/index.bemhtml.js:111:20) 06:51:29.706 - [rebuild] [desktop.bundles/index/_index.js] borschik

lubuntu 15.04

Версии: iojs --version v1.8.1

npm --version 2.7.4

Не могу разобраться с подключением своих блоков на разные страницы.

Например, создал я в папке desktop.blocks папку с неким блоком и файл стилей для него. Этот блок может встречаться в неизменном виде на некоторых страницах проекта. Как сделать так, чтобы можно было подключать этот блок в нужном месте, не описывая каждый раз структуру блока в page.bemjson.js для каждой страницы, где он встречается? В php я бы просто сделал include в нужном месте на нужный файл.

Спасибо за внимание.

Делаю по инструкции: git clone https://github.com/bem/project-stub.git --depth 1 --branch v1.0.0 my-bem-project cd my-bem-project npm install # Не используйте права суперпользователя (root) при установке npm- и bower-зависимостей.

При последней команде получаю ошибки:

roman@roman-S300CA ~/frontend/my-bem-project $ npm install npm ERR! git clone git://github.com/SevInf/node-byline.git Cloning into bare repository '/home/roman/.npm/_git-remotes/git-github-com-SevInf-node-byline-git-d6518a15'... npm ERR! git clone git://github.com/SevInf/node-byline.git fatal: unable to connect to github.com: npm ERR! git clone git://github.com/SevInf/node-byline.git github.com[0: 192.30.252.128]: errno=Время ожидания соединения истекло npm ERR! Error: EACCES, mkdir '/home/roman/.npm/update-notifier/0.1.10' npm ERR! { [Error: EACCES, mkdir '/home/roman/.npm/update-notifier/0.1.10'] npm ERR! errno: 3, npm ERR! code: 'EACCES', npm ERR! path: '/home/roman/.npm/update-notifier/0.1.10', npm ERR! parent: 'bower-npm-install' } npm ERR! npm ERR! Please try running this command again as root/Administrator.

npm ERR! System Linux 3.13.0-37-generic npm ERR! command "/usr/bin/node" "/usr/bin/npm" "install" npm ERR! cwd /home/roman/frontend/my-bem-project npm ERR! node -v v0.10.38 npm ERR! npm -v 1.4.28 npm ERR! path /home/roman/.npm/update-notifier/0.1.10 npm ERR! code EACCES npm ERR! errno 3 npm ERR! stack Error: EACCES, mkdir '/home/roman/.npm/update-notifier/0.1.10' npm ERR! not ok code 0

Всем привет!

Не подскажите, почему стили у блока могут не доопределяться? Использую свою библиотеку, стили из библиотеки подтягиваются, а из проекта нет. Уровни в make.js дописал. Использую enb. При этом с bem-tools отрабатывает нормально. Проект и библиотека на основе project-stub. На чистом project-stub такая же ситуация.

Практикуюсь по мастер классу Мастер-класс+наоборот+вы+пишете+БЭМ-проект,+а+мы+подсказываем+—+Евгений+Константинов,+Дима+Белицкий Список 16 задач получил Теперь надо запустить npm install -g generator -bem-stub@0.4.0. В итоге ругается на spawn-sync package Смотрим скриншот https://yadi.sk/i/hWiDz2tsgyh9L

Добрый вечер!

Прошел воркшоп do-it-yourself и возник вопрос. В ходе всего воркшопа создается по-сути одна страница. А можно ли создать новую страницу рядом с исходной index (которая создается по умолчанию), и сделать ссылки между ними?

Спасибо!

Всем привет, сегодня я прошел курс - https://ru.bem.info/tutorials/start-with-project-stub/ Все получилось. Спасибо за руководство. У меня зреет задача создать (обновить) фронтенд сайта фирмы (5 страничек). Что я хочу:

  1. Использовать шаблонизатор bemhtml.
  2. Использовать императивный jquery! =) По возможности полностью отключить i-bem.js
  3. Получать на выходе полный Не минифицированный html.
  4. Объединить стили всех страниц на выходе в 1 файл. (у меня их всего 5 так что не хочу подключать для каждой странички отдельные стили)

Всем доброго времени суток. Пробую разбираться в строительстве готовых, сверстанных страниц, при помощи bem-tools. И привлек внимание небольшой нюанс в следующем блоке:

   block : 'select',
      mods : { mode : 'radio', theme : 'islands', size : 'l' },
      name : 'select1',
      val : 2,
      options : [
          { val : 1, text : 'Раз' },
          { val : 2, text : 'Два' },
          { val : 3, text : 'Три' }
      ]
    ...

Вот такой html получается:

<div class="select select_mode_radio select_theme_islands select_size_l i-bem select_js_inited" data-bem="{&quot;select&quot;:{&quot;name&quot;:&quot;select1&quot;}}">
    <input class="select__control" name="select1" value="2" type="hidden">
       <button class="button button_size_l button_theme_islands button__control select__button i-bem button_js_inited _popup-destructor_js_inited" data-bem="{&quot;button&quot;:{}}" role="button" type="button">
          <span class="button__text">Два</span>
          <i class="icon select__tick" aria-hidden="true"></i>
       </button>
</div>

Далее смотрю на стили элемента

.select_theme_islands .select__tick {
   background-image: url('../../libs/bem-components/design/common.blocks/theme/_islands/arrow.svg');
...
}

А перенесенная страница в другой каталог этот svg уже не нашла конечно.

Но это ведь в уже собранных файлах o_O .bem/make.js

process.env.YENV = 'production';

На этой странице использовался только один компонент, но если их несколько... В ручную копировать элементы компонентов, переписывать их url в стилях и т.п. Или есть какие-то проф хитрости которые предстоит изучить?

Хочется получить готовый index.html, _index.js, _index.css и отправить их дальше по конвейеру, отдельно от node-js и bem-tools. Помогите пожалуйста независимо подгрузить "пимпочка.svg" в select bem-core после сборки.


Так же, косвенно есть второй вопрос, возможно его суть как-то повлияла на предыдущий результат. Каталог проекта я собирал с помощью утилиты yo bem-stub. Все движения при сборки повторял за Женей Константиновым, из видео по BEMup в Москве. Но след в след не вышло т.к. yo bem-stub предлагал небольшой список компонентов. bem-components я выбрал, но к примеру bem-core не было среди вариантов далее. И стреди технологий было совсем небольшое колличество, нежели в видео. Если точнее то это все технологии что предлагаются:

? Choose technologies to be used in the project: 
 ◯ BEMJSON
 ◯ ie.css
 ◯ ie8.css
 ◯ ie9.css
❯◯ BEMTREE
 ◯ node.js
 ◯ browser.js+bemhtml

а как же ie6? )) Или другие.

Помогите пожалуйста подключить блок, ув. @Guria, (https://github.com/Guria/bem-drawer-menu. ) Вроде бы все элементы инициализировал, но браузер отвечает "SyntaxError: missing ) after argument list", ссылаясь на нало функции:

modules.define('menu', ['jquery', 'keyboard__codes'], function(provide, $, keyCodes, Menu) {
  provide(Menu.decl({ modName : 'fix', modVal : 'scroll' }
  {
    ...

Что делаю нет так.. ? Судя по ошибке какого-то аргумента не хватает. Блоки в common.blocks добавил kg-menu и kg-glyph, В bemjson блок меню создал по примеру из описания.

https://yadi.sk/i/wTtm5vmgfpNkW

это я что-то неправильно сделал или bem/project-stub не поддерживает IE8?

Создал блок page добавил в него CSS, но при запуски страницы стиль не подключается. Чего не хватает для работы стилей?

Решил переехать с bem-tools на enb. Склонировал project-stub, запустил сборку - страничка собралась. Запускаю dev сервер коммандой npm start и вижу привычный вывод bem server. Сборка проходит, но при изменении bemjson, index.html не меняется. Если делаю ./node_modules/.bin/enb make то html меняется. Вопрос: Как правильно запустить dev сервер используя enb?

Видел примеры с BEM.channel(), для реализации обмена данными между блоками, но не могу найти объяснение.

Или данного метода нету уже?

Можете на простом примере показать, как вызывать события между несколькими блоками в параллельных ветках DOM (но с общим родителем)?