Как разделить медиа-запросы в конфигурации webpack?

поскольку мы можем импортировать таблицы стилей, как показано ниже:

<link rel = "stylesheet" media = "screen and (min-width: 900px)" href = "widescreen.css">
<link rel = "stylesheet" media = "screen and (max-width: 600px)" href = "smallscreen.css">

и это поможет ускорить загрузку веб-сайта за счет загрузки только файла css, который соответствует условиям атрибута media.

Мне не удалось найти конфигурацию webpack, которая может разделять запросы или, по крайней мере, позволить мне вручную указать, какая запись css должна загружаться на каком носителе.

Моим единственным решением было написать сценарий nodejs и внедрить index.html во время сборки, но, на мой взгляд, это не чистый способ сделать это.

так есть ли какая-нибудь конфигурация webpack для такого рода вещей?

Я так понимаю, вы хотите, чтобы webpack разделил ваши стили на 2 файла css, верно?

Styx 14.01.2019 18:07

Я предпочитаю, чтобы веб-пакет разделял css по количеству существующих медиа-запросов и импортирую их как тег ссылки в заголовке html файла.

Alireza 14.01.2019 19:11
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
14
2
4 323
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Это больше похоже на комментарий, но я считаю, что для этого есть плагин:

https://github.com/SassNinja/media-query-plugin

Have you ever thought about extracting your media queries from your CSS so a mobile user doesn't have to load desktop specific CSS? If so this plugin is what you need!

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

Alireza 07.01.2019 20:50

Также существует аналог PostCss от того же автора: github.com/SassNinja/postcss-extract-media-query. Я думаю, они ему нравятся медиа-запросы

madflow 07.01.2019 20:57

Обязательно он / она в медиа-запросы. Что вы думаете о динамическом импорте? Я предпочитаю использовать тег ссылки. На самом деле я сталкивался с этим плагином раньше, но мне придется вручную добавить тег ссылки в мой файл index.html, я попробую посмотреть, действительно ли он работает таким образом.

Alireza 07.01.2019 21:01

Без динамического импорта вы ограничены тем, что Webpack может делать как сборщик статических модулей во время компиляции. Поскольку поведение, которое вы хотите получить, требуется во время выполнения, Webpack не может сделать никаких выводов, кроме того, что вы уже сказали ему о среде.

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

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

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