Webpack style-loader vs css-loader
У меня есть два вопроса.
1) УСБ-погрузчик и Загрузчика Стиль два загрузчика webpack. Я не мог понять разницу между обоими. Почему я должен использовать два погрузчика, когда они оба выполняют одну и ту же работу?
2) Что это .пригодный.и меньше .пригодный.в CSS, в указанных выше сведений.MD файлы?
3 ответа:
загрузчик CSS берет CSS-файл и возвращает CSS с
imports
иurl(...)
разрешено через webpackrequire
функции:var css = require("css!./file.css"); // => returns css code from file.css, resolves imports and url(...)
на самом деле это не сделать что-нибудь с возвращенным CSS.
загрузчик стилей берет CSS и фактически вставляет его на страницу, чтобы стили были активны на странице.
они выполняют различные операции, но часто полезно связывать их вместе, как Unix-каналы. Например, если вы используете чем меньше препроцессор CSS, вы могли бы использовать
require("style!css!less!./file.less")
до
- поворот
file.less
в простой CSS с меньшим загрузчиком- разрешить все
imports
иurl(...)
s в CSS с загрузчиком CSS- вставьте эти стили на страницу с помощью загрузчика стилей
css-loader
читает в файле css в виде строки. Вы можете заменить его наraw-loader
и получить тот же эффект во многих ситуациях. Поскольку он просто читает содержимое файла и ничего больше, он в основном бесполезен, если вы не свяжете его с другим загрузчиком.
style-loader
берет эти стили и создает<style>
тег на странице<head>
элемент, содержащий эти стили.если вы посмотрите на JavaScript внутри
bundle.js
после использованияstyle-loader
вы увидите комментарий в сгенерированный код, который говорит/ / style-loader: добавляет css в DOM, добавляя тег
например,
<html> <head> <!-- this tag was created by style-loader --> <style type="text/css"> body { background: yellow; } </style> </head> <body> <script type="text/javascript" src="bundle.js" charset="utf-8"></script> </body> </html>
этот пример исходит от в этом уроке. Если вы удалите
style-loader
из трубопровода путем изменения строкиrequire("!style-loader!css-loader!./style.css");
до
require("css-loader!./style.css");
вы увидите, что
<style>
уходит.
чтобы ответить на второй вопрос "Что это такое .пригодный.и меньше .пригодный.в CSS, в указанных выше сведений.MD файлы?"по умолчанию, когда стиль
require'd
, модуль загрузчика стилей автоматически вводит<script>
тег в DOM, и этот тег остается в DOM, пока окно браузера не будет закрыто или перезагружено. Модуль загрузчика стилей также предлагает так называемый" API с подсчетом ссылок", который позволяет разработчику добавлять стили и удалять их позже, когда они больше не нужны. API работает вот так:const style = require('style/loader!css!./style.css') // The "reference counter" for this style starts at 0 // The style has not yet been injected into the DOM style.use() // increments counter to 1, injects a <style> tag style.use() // increments counter to 2 style.unuse() // decrements counter to 1 style.unuse() // decrements counter to 0, removes the <style> tag
по соглашению, таблицы стилей, загруженные с помощью этого API, имеют расширение".годный.css" а не просто ".css " как и выше.