При использовании css-loader импортированный объект стиля пуст

Я пытаюсь использовать css-loader для импорта стилей из таблиц стилей для каждого компонента реакции, но импортируемый мной объект пуст. Смотрите код:

Header.js:

import React from 'react';
import classes from './Header.css';

const header = () => {
    console.log('classes obj', classes);

    return (
        <div className={classes.Header}>
            <h1>Title Goes Here</h1>
        </div>
    )
}


export default header;

А вот и мой файл Header.css:

.Header {
    background-color:  rgb(49, 118, 197);
}

А вот фрагмент моей конфигурации веб-пакета для разработчиков:

test: /\.css$/,
            use: [
              require.resolve('style-loader'),
              {
                loader: require.resolve('css-loader'),
                options: {
                  importLoaders: 1,
                  modules: true,
                  localIdentName: '[name]__[local]__[hash:base64:5]'
                },
              },

И фрагмент моей конфигурации веб-пакета для prod:

    test: /\.css$/,
    loader: ExtractTextPlugin.extract(
      Object.assign(
        {
          fallback: {
            loader: require.resolve('style-loader'),
            options: {
              hmr: false,
            },
          },
          use: [
            {
              loader: require.resolve('css-loader'),
              options: {
                importLoaders: 1,
                minimize: true,
                sourceMap: shouldUseSourceMap,
                modules: true,
                localIdentName: '[name]__[local]__[hash:base64:5]',
              },
            },

Аналогичный вопрос задан здесь, но конфигурация веб-пакета выглядит слишком разные, чтобы реализовать решение.

Вы можете видеть в моем Header.js, что я консоль. Веду журнал классов obj, которые я импортирую, но это пустой объект.

Какие-нибудь подсказки? Спасибо!


person mike_butak    schedule 25.05.2018    source источник


Ответы (4)


Вам следует

import './Header.css'

А затем для компонента:

<div className="Header">... </div>
person StackedQ    schedule 25.05.2018

Хорошо, ответ для других глупых людей вроде меня. После установки css-loader перезапустите процесс сборки.

person mike_butak    schedule 25.05.2018

Не могли бы вы попробовать этот {test: /.css$/, loader: 'style! Css-loader? Modules & importLoaders = 1 & localIdentName = [name] [local] _ [hash: base64: 5]'}

person John Samuel    schedule 25.05.2018
comment
Спасибо, Джон, но простой перезапуск моего сервера разработки исправил проблему. Глупая ошибка с моей стороны. - person mike_butak; 27.05.2018
comment
Рад знать :) - person John Samuel; 27.05.2018

Обновите свои css-loader и style-loader

person mahdi momeni    schedule 30.10.2020