Привет!
Только что bem-express получил очередную партию мажорных обновлений:
- Обновление
bem-core
до версии^4.1.1
иbem-components
до^5.0.0
. - Переход со
Stylus
кPostCSS
, из коробки поставляется тот же набор плагинов, что и вbem-components
. - Внедрение опционального
livereload
. Подробнее см. https://github.com/bem/bem-express/blob/master/development.blocks/livereload/livereload.md и в README проекта. - Ускорение сборки за счет прогрева npm-модулей, необходимых для сборки. Теперь обновление стилей у меня на ноутбуке занимает ~300мс и не требует перезагрузки браузера.
- Отказ от
bower
для поставки библиотек. Теперь все зависимости ставятся черезnpm
в папкуnode_modules
.
Приятных вам апдейтов в новом году!
Красота
stylus теперь не работает вовсе?
@nicothin если вдруг захочется использовать именно stylus из-за специфики какой-нибудь, очень просто его поставить отсюда, пример там отличный.
@skad0 да нет, мне бы лучше https://github.com/enb/enb-sass )))
@tadatuta а для самого проджект-стаба будет что-то подобное?
Еще можно сделать live rebuild с помощью такой штуки https://www.npmjs.com/package/direct-dev-server.
В отличие от live reload, оно запускает пересборку при изменении файлов ( а не отправляет запрос в браузер), поэтому страничку в браузере нужно обновлять руками.
Зато оно работает значительно быстрее, т. к. не запускает параллельные сборки (например, если сборка еще не завершилась, а файлы были снова изменены) + там есть "умное кэширование" + можно настраивать, что при изменении чего нужно пересобирать. Особенно разница в скорости заметна на больших проектах.
Ах, да, еще оно не требует подключения в проект дополнительных блоков (например, можно использовать его, даже если вы не используете блок page).
@nicothin зачем stylus если есть post-css, на данный момент в bem-components и bem-core, в стабе подборка плагинов такая, что код написанный для stylus отработает также.
@ilyar наличие препроцессинга — в основном, для работы с уровнем проекта: есть глобальные переменные, но для конкретного блока нужно указывать умолчания для используемых блоком переменных (для кросспроектной пригодности блока). А postcss-simple-vars не дает такой возможности. И плагина для условий нет в сборке. Но даже если б был — писать «ифы» вместо
$var: 10px !default;
или вместо$bar ?= blue;
нехилый оверхед.@nicothin можно же смело добавлять собственные плагины
@tadatuta так это... нету у postcss плагинов, реализующих умолчания для переменных. Добавлять плагин для условий и писать ифы... )))
оффтоп: если нужна серьезная работа с CSS, postcss трещит по швам (треск в виде фразы «много же плагинов есть и свой всегда можно написать»).
@nicothin Перенесу обсуждение из слака:
https://github.com/postcss/postcss-simple-vars используется для переменных в стабе и основных либах, там нет условий, все что есть описано тут https://github.com/postcss/postcss-simple-vars для условий надо еще один плагин, в этом идеология PostCss. Вот например: https://github.com/andyjansson/postcss-conditionals#usage.
Если хочется инлановых условий (тернарная условная операция) значит надо искать плагин реализующий или написать свой, говорят это просто (https://github.com/postcss/postcss/blob/master/docs/writing-a-plugin.md), сам не пробовал, подсмотреть реализацию можно тут.
А чтобы не писать свой плагин (тратить время и доставлять доп. точку отказа), а пользоваться тем что есть, придется чем-то жертвовать.
Если готов отказаться от стиля описания переменных вида
$var
, то вот postcss-custom-properties плагин реализующий рекомендацию W3C CSS Custom Properties for Cascading Variables Module.Переопределение перенесенных есть и покрыты тестами, пример из фикстуры:
Или сразу http://cssnext.io/ поставить это набор плагинов реализующий стандарты по СSS (postcss-custom-properties в составе).
К сожалению именно Cascading Variables (
$var: 10px !default;
):postcss-custom-properties не реализует там в доке есть заметка на эту тему и ссылка на аналог postcss-css-variables.
Итого, с переходом от stylus к postCSS имеем выбор:
Или я негативно смотрю на вещи? ))
Я не думаю, что такое сильное усложнение должно быть в CSS. А раз уж плагины никто не пишет для этого кейса, то, вероятно, не такой уж он и часто используемый.
Кому как, конечно, но, кажется, прямо уж пропадающих киллер фич (в моем понимании, так вообще любых ощутимых) не наблюдается. Более того, ничего не навязывается.
Смысл существования этого репозитория — попытаться угадать такой минимальный набор фич, который подойдет для большинства. При этом он ни в коем случае не претендует на истину в последней инстанции. Если на проекте требуется
Stylus
, то всегда пожалуйста.