Я написал приложение многократного использования в Vue и скомпилировал его как библиотеку. Я установил глобальную переменную $brand-color
в файле SCSS, который является основным цветом приложения (кнопки, границы, цвета шрифта). Я использую эту переменную в других файлах компонентов SCSS.
Я разместил свое приложение на веб-сайте моего клиента, и все работает нормально. Прямо сейчас у меня есть другой клиент, который готов использовать мое приложение. НО ... новый клиент хочет, чтобы мое приложение отличалось от $brand-color
от моего старого. Каков наилучший способ решения этой проблемы?
Одна вещь, которая приходит мне в голову, - это установить переменную хранилища со значением $brand-color
, которое зависит от location.host
, и стилей связывания всех «фирменных» элементов. ,
switch (location.host) {
case 'client1.com':
context.commit('setMainColor', '#ff0000');
...
case 'client2.com':
context.commit('setMainColor', '#16c100');
...
}
Но это будет очень больно. Я должен был бы применить много изменений во всех моих компонентах. Есть ли лучшее решение, связывающее стили всех компонентов?
Кстати, я не могу использовать переменные CSS, потому что код должен быть дружественным к IE.