2016-09-24 2 views
1

Я заметил, что моя конфигурация webpack импортирует те же стили в голову <style> тег несколько раз, когда я стилю @import в sass-файле.Webpack импортирует одни и те же стили несколько раз

Imported Styles

Я думаю, что это из-за мой глобальные стили файл, который выглядит следующим образом:

@import url('https://fonts.googleapis.com/icon?family=Material+Icons'); 
@import '~material-design-lite/src/material-design-lite.scss'; 

я позже импортировать стили в нескольких других файлах стилей компоненты:

@import 'global'; 

Есть ли какая-то конфигурация, которую я пропустил?
Я думал, что могу импортировать файл глобальных стилей в файл index.js через импорт, но этот импорт должен быть первым, и каким-то образом я не смог добиться этого с помощью webpack.

+0

Попробуйте разделить свои микшины/переменные на отдельный '.scss', который вы можете импортировать в свой глобальный и ваши компоненты отдельно. – ctrlplusb

+0

Я использую переменные, предоставляемые mdl (язык дизайна материалов) из их пакета модулей узлов. У меня нет возможности расколоть этот файл unfortunatelly –

+0

Разве они не разоблачают переменные отдельно? Проверьте модули узла dir – ctrlplusb

ответ

0

Это не проблема с webpack, больше с использованием CSS. Поскольку атрибуты CSS скомпилированы статически, каждая таблица стилей, импортирующая global, имеет в себе копию. Вы можете использовать Less и @import (reference) statement, или если вы предпочитаете CSS, загрузите его отдельно и не импортируйте его каждый раз.

+0

То же самое можно сделать с сасси? –

+1

Не то, чтобы я знал. То, что я делаю с sass, - это только импорт scss-файлов с определениями переменных, поскольку это единственная реальная причина импортировать что-либо в приложение. Кроме этого, просто импортируйте каждую (внешнюю) таблицу стилей в основное приложение или файл scss. – eavidan

+0

ОК, теперь, когда я смотрю на него, ты прав. Может быть, я использую импорт неправильно в первую очередь –

0

Я думаю, это потому, что вы назвали файл global.scss вместо _global.scss. Подчеркивание говорит транспилеру, что это частичный и НЕ для создания файла для него.