Angular — загрузка разных стилей в разных средах

#angular

#angular

Вопрос:

У меня есть приложение с двумя разными представлениями, каждое представление запускается с отложенной загрузкой его средой.

Например, если я запущу ng serve --configuration=viewA .

Представления используют общие компоненты в общем модуле.

Мой вопрос, можно ли использовать разные css-файлы для каждой среды?

Ответ №1:

Я думаю, вам нужно создать 2 разных проекта в вашем файле angular.json

 projects
  app_name
    ...
  app_name-e2e
    ...
  

Каждый проект может иметь свои собственные свойства конфигурации, такие как стили, скрипты, aot и т. Д. В вашем случае вам просто нужно указать два разных стиля, остальные все будут одинаковыми, затем просто запустите приложение следующим образом:

 ng serve <project_name> 
  

Комментарии:

1. Спасибо за ответ, я думал об этом решении, но для проекта требуется огромный рефакторинг, я попробую это решение, если нет лучшего способа.

Ответ №2:

Эта функция часто задается здесь, возможно, вы сможете найти решение с помощью обходного пути filereplacement, который описан в конце запроса функции 🙂

Комментарии:

1. Для меня это хорошо работает, единственная проблема в том, что мне нужно снова написать весь стиль только для одного или двух свойств, которые я хочу изменить.

2. Хм .. может быть, добавить для каждого стиля файл css, который содержит измененные значения в качестве переменной css и заменить этот файл?

3. Прежде всего, спасибо за помощь, вы имеете в виду импортировать в мой scss-файл variables.scss и заменить его !? Если да, то какое имя файла я пишу в строке импорта?

4. хм, да, вы правы.. имя файла должно быть одинаковым .. вот так: ` «fileReplacements»: [ { «заменить»: «src / styles / template1 /variables.scss»»на»: «src / styles / template2 /variables.scss» } ` не пробовал .. извините, если это всенеправильно :/

5. Это не работает, я не знаю почему, но импорт в file.component.scss все равно перешел к исходному файлу var.scss, хотя я могу создать файл scss, содержащий классы css, которые я хочу переопределить, и поместить его в styleUrl в @component и заменить его на env…