bem-site / bem-forum-content-ru

Content BEM forum for Russian speak users
MIT License
56 stars 6 forks source link

Отключение фреймверка I-bem.js #364

Open Drekrosh opened 9 years ago

Drekrosh commented 9 years ago

Ребят, подскажите как правильно убрать его вообще с проекта. Чтобы даже духу не было ) Без него только bem-components не будет работать?

Guria commented 9 years ago

Если вам нужны только базовые шаблоны bemthml, bemtree, то можно вообще отказаться от подключения bem-core, скопировав i-bem.bemhtml, i-bem.bemtree к себе на проект.

tadatuta commented 9 years ago

плюс блок page

Drekrosh commented 9 years ago

@tadatuta @Guria Это я понял, но удаляя i-bem.js из папки bem-core , вызывает ошибку в отладчике. Можно какой-нибудь маленький примерчик глянуть?

Guria commented 9 years ago
i-bem/
  i-bem.bemhtml
  i-bem.bemtree
page/
  page.bemhtml
veged commented 9 years ago

@Rahnar а можете подробнее описать задачу? откуда взялось такое желание?

qfox commented 9 years ago

@veged Я на днях с этим тоже сталкивался, у меня кастомная сборка i-bem (из bem-bl старая) на проекте, и туда нет возможности загружать еще один i-bem из bem-core. В итоге пришлось выносить на отдельный уровень чистый bemhtml. ;-( При чем, на остальные 2 площадки я собирал с уровнем из bem-core. Т.е. это исключение, скорее, но очень проблемное

veged commented 9 years ago

@zxqfox я не очень понимаю, зачем нужно скрещивать в одном рантами bem-bl и bem-core — это обе библиотеки про одно и то же и они будут конфликтовать, работоспособность таких мутантов никак не поддерживается

Drekrosh commented 9 years ago

@veged Задача в использовании Ангулара. Потому что, i-bem.js конфликтует с angular. И человеку было тяжело описывать модульную архитектуру ангулара в мерках БЭМ. Мое мнение , если использовать БЭМ, то пользоваться исключительно его внутренними технологиями. Но на проекте идет ангулар.

veged commented 9 years ago

@Rahnar но я не понимаю, как вы хотите использовать блоки без js (который весь использует i-bem.js внутри) — вы можете весь js реализовать сами средствами ангуляра, но тогда достаточно вообще не подключать никакого js от bem-components

Drekrosh commented 9 years ago

@veged именно так и поступил , неделю назад :))

qfox commented 9 years ago

@veged В рантайме не надо ничего скрещивать. Проблема была в том, что bemhtml тянет за собой i-bem.js, bemhtml из bem-core вполне годный и для i-bem из bem-bl (за мелкими исключениями). Но т.к. i-bem нам собирать не надо (он у нас собран ручками и не трогается), а некоторая часть тянет bem-core — то тянуть bem-bl ради bemhtml как-то странно. В рантайме, естественно, страницы полностью собранные в bem-core работают со свежим i-bem, а старые — по большей части рисуются смарти и используют старый bem-bl. Проблема же возникла когда нам нужно было собрать небольшой блочок в бандл вместе со стилями и скриптами и раскидать на несколько сайтов (на котором в рантайме уже есть i-bem из bem-bl), и .js мы реализовали так, чтобы не конфликтовал, но мы не захотели переписывать еще и bemhtml шаблон на смарти и вот проблема и возникла. Я понятно объясняю, да? ;-)

Т.е. проблема не частая, но очень неприятная, и мешает переходу Ы→core. Как и отсутствие в i-bem из Ы опциональной модульной сборки — ничто же не мешает опционально дать возможность оборачивать свежий код (и переводить по возможности старый) в модули. Но это возможно только при некоторой кастомизации, которая, кмк, нужна каждому, кто сталкивается с такими переходами.

pavelpower commented 9 years ago

@veged Расскажу в тему свою историю. Для нас jQuery является очень медленным и глючным. По сему отказываемся от него полностью. Однако i-bem на нем женат. Взяв библиотеку bem-core, захотелось не писать своих page, link и прочих блоков, уже, ведь, есть!

Но как не крутил не вертел, пришлось копипастить то, что было в bem-core на свой слой переопределения и выпиливать от-туда i-bem.

Очень хочется иметь простой базовый набор блоков, который можно использовать as is, а всякие i-bem уже навешивать отдельно.

А пока всё копипастим да переписываем. Что как-то не по православному.

qfox commented 9 years ago

@pavelpower так можно же было отказаться от .js технологии, использовать все, кроме .js, и js писать самому (назвать только иначе, а потом переименовать через тот же fileCopy/fileMerge).

pavelpower commented 9 years ago

@zxqfox ага, но это уже танцы с бубном. Проще оказалось скопипастить

Guria commented 9 years ago

@Rahnar i-bem и angular не конфликтуют если их правильно приготовить