Лучшая стратегия о том, как работать с двумя CSS-фреймворками одновременно в проекте

Предположим, что я работаю над проектом SPA, в котором есть две разные CSS-фреймворки, и они должны сосуществовать между собой: "новая и свежая" и другая "старая и болезненная". Каждый модуль нашего веб-приложения должен быть выполнен с новой платформой CSS, но у старой есть такие агрессивные правила, которые перезаписывают некоторые из основных правил нормализации / сброса нашей новой инфраструктуры и влияют на новую CSS. Пример:

старый framework.css

// It's a stupid thing, but in this example this code will modify your new 
//framework because doesn't add 'color:black' to define the basic style 
// again.
body { color: red }; 

Я рассмотрел различные решения, но ничего из них не работает для меня:

  • Используйте пространство имен CSS для нового фреймворка. Хорошо избегать изменения старых стилей, но что если у вас есть новый модуль с новым CSS, содержащийся в модуле, который работает со старым CSS? Этот новый модуль будет содержать много css bin.

  • Создайте огромный и безумный файл "нормализации" CSS, который удаляет все правила CSS, которые не нужны вашей новой среде. Чем больше ваш старый CSS-фреймворк, тем больше правил вы должны добавить, чтобы удалить предыдущие стили. Это оказывает огромное, огромное влияние на производительность сети, чтобы "восстановить" "первоначальные" стили браузера.

  • Сочетание двух: новый каркас имеет пространство имен css, старый каркас содержит стили "нормализации" в конце файла. Это лучший выбор, который я могу найти в моем конкретном случае на данный момент, но я хотел бы верить, что возможно другое решение.

Как вы справляетесь с этой проблемой? На ваш взгляд, что может быть лучшей стратегией для борьбы с этим?

1 ответ

Честно говоря, я бы попытался сбросить старый фреймворк... это единственный способ сделать это "правильно" со сценарием, дающим вам полный контроль над средой разработки.

В качестве альтернативы вы можете определить, какие части старого фреймворка абсолютно необходимы, чтобы удерживать сайт вместе и извлекать эти части, отбрасывая остальные. Это должно удалить как можно больше "нормализующих" частей. Любые дыры могут быть переопределены относительно легко (надеюсь).

Другие вопросы по тегам