Как правильно включить Sass в NextJs?

Когда я использую файлы Sass в NextJs, я получаю предупреждения «conflicting order» от mini-css-extract-plugin. Конфликт всегда портит мои стили build. Вы можете увидеть ошибку, описанную по следующей ссылке:

https://medium.com/iryl/control-css-imports-order-for-next-js-webpack-based-production-applications-3b69765444fd

Это статья с решением этой проблемы, но в ней говорится о заказе файлов Sass только для одной страницы. Я не уверен, как сделать заказ, когда есть несколько страниц. Как решить проблему conflicting order?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
966
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

если вы используете nextjs 9.3 или выше, вы можете использовать его как модули css. По крайней мере, так они рекомендуют делать.

Это пример.

Вы также можете проверить поддержку Sass в документации Next.js.

-- Обновлять

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

Components
├── Header   
│   ├── Header.js
│   ├── Header.module.css    
├── Footer   
│   ├── Footer.js
│   ├── Footer.module.css    
├── Nav   
│   ├── Nav.js
│   ├── Nav.module.css      

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

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

https://github.com/edgarlr/portfolio/tree/main/components

Спасибо за ответ. В примере они импортируют styles.scss в _app.js, и я нахожу это сбивающим с толку. Как я могу добавить файл scss только для страницы? Это то, что нам нужно, когда есть несколько страниц, верно?

Sachin Titus 10.12.2020 08:00

Привет @SachinTitus, я просто обновляю свой ответ, надеюсь, это то, что вы искали, дайте мне знать, если у вас есть другие вопросы.

edgarlr 10.12.2020 20:28

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