Условное применение стиля css в приложении React Spa

У меня есть проект, в котором я пытаюсь применить разные стили CSS для разных макетов (которые я определяю по URL-адресу, в основном у нас есть два разных доменных имени). В файле webpack.config я исключил таблицу стилей, используемую для 2-го макета, поскольку он загружал весь CSS и помещал все это в один файл во время сборки (что переопределяет цвет тела, установленный для макета 1 с макетом 2). Но после исключения этого конкретного файла CSS таблица стилей не добавлялась при просмотре 2-го веб-сайта. Это приложение для реагирования, и я использую условие if для применения стиля:

index.js файл:

if (window.location.hostname.includes("website2")) {
  require("./assets/css/style1.css");
  require("./assets/css/style2.css");
} else {
  require("./assets/css/style1.css");
}

webpack.config

module: {
  test: /\.css$/,
  exclude: /\style2.css$/,
  ....
} 

Я новичок в webpack, поэтому не уверен, следует ли исключать файл CSS таким образом.

Запускается ли веб-пакет до развертывания или после? Это происходит статически. Итак, если вы запустите сборку веб-пакета перед развертыванием в двух доменах, это условие будет недействительным. Что касается имени хоста, я бы предпочел, чтобы вы проверили это: Доступ к имени хоста URL из React JS.

Praveen Kumar Purushothaman 31.07.2018 10:32
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
1
168
1

Ответы 1

Webpack - это инструменты для разработки / сборки. Он компилирует только исходные файлы. Таким образом, ваш код не будет работать во время выполнения.

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

// note: scss styles

.style1 {
 // style theme 1
}

.style2 {
 // style theme 2
}  
if (window.location.hostname.includes("website2")) {
  body.classList.add("style1");
  body.classList.add("style2");
}
else{
  body.classList.add("style1");
}

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