Как организовать работу с одними стилями на разных проектах?
Есть два проекта, один на vue2, второй на vue3, у каждого проекта своя команда
у этих проектов есть общие элементы дизайна - гайдлайны, кнопки, селекты и прочий ui
Требуется чтобы все одинаковые элементы были в единственном экземпляре и брались командами из одного места, для того что бы не делать их 2 раза и они были полностью идентичными
Из-за разной версии фреймворков от общих компонентов решили отказаться и ограничиться едиными стилями
Но и тут стилями все не ограничивается - нужна еще одинаковая html структура для этих элементов
Вижу решение в лоб - завести отдельный проект под это дело, для каждого ui элемента наделать стилей и импортировать в нужные компоненты, а html структуру привести к одному виду, но может вы подскажете способы по интереснее?
upd: проекты уже есть и они долгое время жили отдельно друг от друга, у каждого есть своя реализация этих элементов, не хотелось бы все переделывать сейчас, особенно это касается html, у меня задача посмотреть на альтернативные варианты, какие то автогенераторы, и почитать про похожие кейсы, но что то я не могу таких найти
ProjectSoft, ну может быть хотя бы в том, что еще речь идет о структуре разметки и возможно используются v-model на элементов форм и не только на них. Я то как раз вопрос прочел и описание к нему
WapSter, наверное это основной затык, и если я прийду с предложением полностью переделать структуру, перенавешать события, условия и прочее, на меня косо посмотрят ) хотя пока кажется альтернатив нету
Одинаковая структура при разных реализациях - это больно и малореально. Существуют css\html-only дизайн системы, которые можно брать и реализовывать на любом фреймворке, но это тот ещё геморрой без особого выхлопа.
Мне кажется вам стоит решить чего вы будете-придерживаться впредь, а что легаси, и вынести таки все компоненты одной актуальной версии(vue2 или vue3) в библиотеку, скомпилировав её в режиме web-components. Веб компоненты вы сможете подключать куда угодно, ценой лишних 100кб на непрофильный vue-runtime в случае несовпадения.