Дима
Мне как то и в 2017 году неплохо
Дима
css модули, все дела
Дима
Смотря что за CSS. Мб там полно мёртвых стилей. А вообще, его тоже как и JS можно разделять и загружать только когда нужно.
Прямо вижу — Буцтрап целиком, Foundation в трёх версиях, каждый со своим normalize.css, ну и парочка jQuery плагинов со своими файлами
Anonymous
ну вот, а раньше css модулей и сборщиков не было)
Oleg
И частично переопределен импортантами
Дима
Хорошо в css нет !important!important
Oleg
Импортанты юзерстилей переопределяют импортанты сайта
Дима
А ещё должен быть козырной ипортант
Oleg
У нас же энтерпрайз судя по описанию - нужно чтобы в должностной инструкции было требование устанавливать файл со стилями
Oleg
Из окна
denisx
А вы пробовали не добавлять мёртвые стили?)
слишком много кастомных элементов, не понятно что нужно сейчас
denisx
Из окна
тут поржать или по делу?
Oleg
Если по делу то нет единого решения
Oleg
Если изначально не было архитектуры - просто так не порежешь
Oleg
Потому что стили могут и аффектить
denisx
что значит архитектура? порезат можно, что дальше?
Oleg
И самое страшное когда на аффекте строят новые стили
Дима
>что значит архитектура? Я кажется нашёл в чём проблема
Дима
Суд оправдает
Дима
слишком много кастомных элементов, не понятно что нужно сейчас
Выносите в модули с тестированием на регрессии
Дима
Других вариантов нормальных нет
denisx
вынес, что дальше? смотреть как прыгает рендер страницы?
Oleg
Тесты только решение, да
Oleg
Как именно он прыгает
Oleg
?
Дима
for (var key in obj) { console.log(key); }
Так всё равно не заработает
denisx
Ты понимаешь, что такое модули?
как понять, какой модуль на текущей странице?
Oleg
Тогда точно всё плохо
Дима
как понять, какой модуль на текущей странице?
Позови взрослых, не стоит самому такие проекты рефакторить))
Anonymous
Блин. И правда
Дима
¯\_(ツ)_/¯
Oleg
как понять, какой модуль на текущей странице?
Опиши конкретно проблему и те решения что ты сам видишь
denisx
я написал же - всё плохо
Дима
дядька, рассказывай воркфло, не томи
css модули делают компоненты независимыми, и после перевода проекта на такую технологию проблема неиспольщуемых стилей не должна появляться by design
denisx
после леса билд 1м
Дима
Нет кода компонента — нет css
Oleg
я написал же - всё плохо
Ну тогда тут поможет только переписывание с нуля
Oleg
В ExtJS и втором ангуляре из коробки оное
Дима
https://github.com/css-modules/css-modules
Oleg
Вообще в древнем хтмл уже был модули
Oleg
А точнее решение проблемы с месивом
Oleg
Называлось оно атрибутами
Oleg
Тег и стили едины by design
Oleg
Но увы куча повторяющихся кусков
Дима
Атрибуты и сейчас есть, только это выглядит и пишется как огромный костыль
Oleg
Ксс решил проблему с повторением, но добавил проблему с перемешиванием всё в кучу
Oleg
Ну и теги это слишком мелкие компоненты
Дима
А, ты про это)
Oleg
Ага
Дима
Просто в css можно сделать "модульность" разграничивая неймспейсы прям по кастомным html атрибутам
Oleg
Эволюция штука суровая
Дима
Но с такого проекта наверное путь только в дурку
Oleg
Техник 100500 видов
Oleg
Но суть одна - нужно снова привязать стили к компонентам, но не к тегам а к группам и с инкапсуляцией
Oleg
Впрочем это тоже лишь одно из решений
Vitaly
можно shadow dom использовать ^.^(в хром и опере)
Oleg
Но сейчас компиляцией решается и прочим таким
Oleg
Шадоу как-то долго заходит
Дима
shadow dom это тот ещё адок))
Дима
Inception в чистом виде
Vitaly
https://github.com/Wildhoney/ReactShadow
denisx
https://github.com/css-modules/css-modules
так. я разбил всё на модули. что дальше?
Дима
так. я разбил всё на модули. что дальше?
Теперь удаляй всё что осталось
denisx
да ничего нет больше. но все модули собираются в билд, и он 1м
Vlad
И не используй global
Vlad
А бандл может
denisx
это не весь css, это только main
denisx
ну, без gz понятно.
Дима
Ты же сказал, что всё вынес
denisx
внутри мобилки и шрифты. но самого css много всё равно
Дима
CSS не может столько весить
У меня кстати на проекте пол метра css