ничего не пойму - зашел в @bem-react/classnames на gitHub - там версия 1.3.9 откуда у меня в package.json могла появится 1.4.9 и такие же проблемы с другими пакетами!!
оказалось меня разыграли коллеги - знали что буду в выходные работать и в новую версию нашего пакета засунули postinstall в котором хаотично поменяли 3 на 4 у разных пакетов и полдня потратил на выяснение причин 😳
оказалось меня разыграли коллеги - знали что буду в выходные работать и в новую версию нашего пакета засунули postinstall в котором хаотично поменяли 3 на 4 у разных пакетов и полдня потратил на выяснение причин 😳
Понятно. Делаем вывод вместе, в таких ситуациях, первым делом нужно проверить git историю package.json файла. Если там нет необоснованных не прокомментированных коммитов с изменением версий, нужно посмотреть в репо зависимостей и только если там версии выше чем в NPM, имеет смысл бить тревогу и искать альтернативы npm реестру.
я же даже не мог предположить что кто-то умышленно может руками поменять версии зависимостей поэтому свято верил что версии реальные и не исследовал их
подскажите чем обусловлено разделение на 2 типа компонентов: десктоп и мобильные? как и где определяется какую версию использовать? если это касается только типов обработчиков нажатий и части css то почему нельзя было сделать универсальный компонент?
подскажите чем обусловлено разделение на 2 типа компонентов: десктоп и мобильные? как и где определяется какую версию использовать? если это касается только типов обработчиков нажатий и части css то почему нельзя было сделать универсальный компонент?
Как минимум чтобы минимизировать бандл по платформам. В более-менее крупных продуктах разработку мобильной версии ведёт отдельная команда — универсальный компонент будет сложнее поддерживать.
т.е. функционально или внешне компоненты сильно отличаются в зависимости от платформы? не только типом обработчиков и css? как быть на гибридных платформах которые умеют и пальцами и указателем и размеры экранов еще не десктоп? где происходит выбор какой компонент использовать?
т.е. функционально или внешне компоненты сильно отличаются в зависимости от платформы? не только типом обработчиков и css? как быть на гибридных платформах которые умеют и пальцами и указателем и размеры экранов еще не десктоп? где происходит выбор какой компонент использовать?
Неважно, на сколько они отличаются. Сегодня не отличаются, завтра — будут. Платформы — лишь частный случай уровней переопределения. А где происходит выбор, БЭМ не решает — где угодно, как удобно.
Пока не очень понятно - если делать компонент responsive - тогда мобила или десктоп - нет разницы Не понятна на чем основываются границы между ними и почему только 2 вида а не 3?
Пока не очень понятно - если делать компонент responsive - тогда мобила или десктоп - нет разницы Не понятна на чем основываются границы между ними и почему только 2 вида а не 3?
А кто сказал, что только два вида? Типов и Уровней переопределения может быть сколько угодно.
т.е. функционально или внешне компоненты сильно отличаются в зависимости от платформы? не только типом обработчиков и css? как быть на гибридных платформах которые умеют и пальцами и указателем и размеры экранов еще не десктоп? где происходит выбор какой компонент использовать?
Есть очень сильно отличающиеся по функционалу. Например Select. На мобилках он нативный.
Определяет какую версию отдать, например, сервер, по юзер агенту. Или клиент по фича детекту. Как сказали выше, это может делать кто угодно, суть в том что есть возможность разделения, если она нужна. Если не нужна, везде можно сувать десктоп версию или какую-нибудь common, которая может быть в том числе просто алиасом desktop или чем угодно ещё
А разделение мега удобно для уточнения. Выделяешь базовый компонент, а потом описываешь его частные случаи для конкретных платформ. Например, кнопка на десктопе должна иметь обводку при фокусе, потому что люди так привыкли при навигации с клавиатуры. На смартфоне это не нужно. Вот и уточняешь для десктоп версии такое CSS правило. Или как в случае с Select'ом, собираешь бандл с другими HOC'ами
Ага, прокрутив Сансары круг вернулись к исходным вопросам 😊
очевидно что ответ "используйте где угодно и как угодно варианты компонентов" - не ответ ибо либо в окончательный бандл войдут все компонент обоих переопределений либо вариант, что все компоненты будут по одиночке динамически грузится - что еще хуже.
должна быть технология и сборки бандлов с компонентами только одного типа переопределений и механизм выбора и раздачи ресурсов для каждого из типов переопределений
вариант раздачи на сервере по юзер агенту тоже не очень - есть класс устройств которые относятся формально к классу десктоп но экран у них тыкательный, но в данной ситуации тыкать будет не удобно - все заточено под работу с указателем на десктопе ну и соответственно отдать для них мобильный вариант - не совсем верно