Нужен ли postcss-loader для переноса sass в css через webpack?

В настоящее время я изучаю sass / scss и пытаюсь настроить конфигурацию веб-пакета для практического проекта. Итак, я поискал инструменты и технологии, которые мне нужны, в некоторых ресурсах предлагалось использовать «node sass, sass-loader и css-loader» (документация по веб-пакету), в то время как другой предлагал пост-CSS вместо css-loader. Хотелось бы узнать разницу.


person Richmond M    schedule 06.10.2019    source источник


Ответы (2)


TL; DR

Нет, для использования SASS postcss-loader в webpack не требуется. sass-loader будет в одиночку делать работу. Хотя установка node-sass обязательна.


Что такое PostCSS?

PostCSS - это инструмент для преобразования CSS с помощью плагинов JS. Эти плагины могут поддерживать переменные и миксины, преобразовывать будущий синтаксис CSS, встроенные изображения и многое другое.

Ссылка: https://webdesign.tutsplus.com/tutorials/postcss-deep-dive-what-you-need-to-know--cms-24535

Autoprefixer - один из рекомендуемых плагинов.

Что такое SASS?

SASS - это препроцессор CSS. Узнайте больше здесь, https://sass-lang.com/guide. sass-loader - это загрузчик веб-пакетов, который делает то же самое с инструментами веб-пакетов.

Что делает node-sass?

Node-sass - это библиотека, которая обеспечивает привязку Node.js к LibSass, версии C популярного препроцессора таблиц стилей Sass.

Это не альтернатива sass-loader. node-sass находится в peerDependencies из sass-loader, поэтому он понадобится вам для использования sass-loader.

Ссылка: https://github.com/sass/node-sass

Можете ли вы использовать как sass-loader, так и postcss-loader?

Да! И я бы порекомендовал вам использовать его вместе. Фактически, если вы извлекаете проект Create React App, в конфигурации веб-пакета вы можете найти как sass-loader, так и postcss-loader.

person vatz88    schedule 06.10.2019

Это не обязательно, но я настоятельно рекомендую плагин autoprefixer. Загрузчики позволяют импортировать файлы указанных типов.

  {
    loader: 'postcss-loader',
    options: {
      plugins: () => [require('autoprefixer')]
    }
  }
person Tom Shaw    schedule 06.10.2019
comment
Я посмотрю. Спасибо - person Richmond M; 06.10.2019