У меня два вопроса.
1) CSS Loader и Style Loader - это два веб-загрузчика. Я не мог понять разницу между ними. Почему я должен использовать два загрузчика, когда они оба выполняют одну и ту же работу?
2) Что это .useable.less и .useable.css, упомянутые в вышеупомянутых файлах Readme.md?
webpack
webpack-style-loader
Анвеш Чека
источник
источник
Ответы:
Загрузчик CSS берет файл CSS и возвращает CSS с помощью функции веб-пакета
imports
иurl(...)
разрешает ееrequire
:Это на самом деле ничего не делает с возвращенным CSS.
Загрузчик стилей берет CSS и фактически вставляет его на страницу, чтобы стили были активными на странице.
Они выполняют разные операции, но часто бывает полезно объединить их в цепочку, как в каналах Unix. Например, если вы используете препроцессор Less CSS , вы можете использовать
в
file.less
в простой CSS с помощью загрузчика Lessimports
иurl(...)
с в CSS с загрузчиком CSSисточник
<style>
тега» (это скопировано из официальной документации по адресу github.com/webpack/style-loader )imports
Я полагаю , вы имеете в виду@import
директив. По умолчанию эта директива не объединяет импортированные правила CSS с импортером, а создает другойGET
запрос. Вы говорите, чтоcss-loader
вернете объединенный вывод?css-loader
читает в CSS-файл в виде строки. Вы можете заменить егоraw-loader
и получить тот же эффект во многих ситуациях. Поскольку он просто читает содержимое файла и ничего больше, он в основном бесполезен, если вы не связываете его с другим загрузчиком.style-loader
берет эти стили и создает<style>
тег в<head>
элементе страницы, содержащем эти стили.Если вы посмотрите на JavaScript внутри
bundle.js
после использования,style-loader
вы увидите комментарий в сгенерированном коде, который говоритНапример,
Этот пример взят из этого урока . Если вы удалите
style-loader
из конвейера, изменив строкув
вы увидите, что
<style>
уходит.источник
css-loader
в отличие отraw-loader
?Чтобы ответить на второй вопрос «Что это за .useable.less и .useable.css, упомянутые в вышеупомянутых файлах Readme.md?», По умолчанию, когда стиль имеет значение
require'd
, модуль загрузчика стилей автоматически внедряет<script>
тег в DOM, и этот тег остается в DOM, пока окно браузера не будет закрыто или перезагружено. Модуль style-loader также предлагает так называемый «API с подсчетом ссылок», который позволяет разработчику добавлять стили и удалять их позже, когда они больше не нужны. API работает так:По соглашению таблицы стилей, загружаемые с использованием этого API, имеют расширение ".usable.css", а не просто ".css", как указано выше.
источник
Документация Webpack рекомендует сочетать style-loader с css-loader:
https://webpack.js.org/loaders/style-loader/
источник