2015-11-30 2 views
3

Я пытаюсь использовать средство выбора даты от react-toolbox.React-toolbox как правильно включить стили

Вот мой WebPack конфигурации:

{ 
     test: /\.css$/, 
     loader: ExtractTextPlugin.extract('style-loader', 'css-loader!cssnext-loader') 
    },{ 
     test: /\.scss$/, 
     loaders: ['style', 'css', 'sass'] 
    } 

У меня есть .scss в resolve разделе:

resolve: { 
    extensions: ['', '.js', '.jsx', '.scss'] 
}, 

Я также обернуты мой компонент App в ToolboxAPP

ReactDOM.render(
    <ToolboxApp> 
     <Provider store={store}> 
      <App /> 
     </Provider> 
    </ToolboxApp> 
, document.getElementById('root')) 

Когда Я отобразил компонент, вот как он выглядит:

enter image description here

Вы можете видеть на картинке, что компонент не стиль, а соответствующие имена классов CSS не определены.

Кто-нибудь знает, что я сделал не так?

+0

То же самое здесь. Но у меня даже нет этих неопределенных атрибутов '' undefined '', только пустых 'class'. – Green

+0

Можете ли вы также добавить строку, в которой вы создаете экземпляр ExtractTextPlugin? –

ответ

0

Это похоже на проблему конфигурации Webpack. Это на самом деле странно, потому что если webpack не может импортировать стили, он должен вызывать ошибку импорта вместо разрешения пустого объекта. Поскольку мы не можем видеть весь файл конфигурации, я хотел бы спросить вас, если вы уже проверили рабочий примерный репозиторий: https://github.com/react-toolbox/react-toolbox-example

Существует пример конфигурации Webpack, надеюсь, что это поможет!

+0

Он импортирует стили на странице в порядке, он не устанавливает классы. – Green

+1

Этот файл в веб-папке очень запутан, так как тот, у кого есть довольно простой конфигурационный файл в веб-пакете, много чего там не похоже на настройку для react-toolbox. – Alioo

2

Вам необходимо включить modules (который, к сожалению, может сломать любой другой стиль, не используя модули).

См. https://github.com/react-toolbox/react-toolbox/issues/121 для получения дополнительной информации.

Это линия вам нужно будет использовать в вашем WebPack погрузчик:

require.resolve('css-loader') + '?sourceMap&modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]', 
+0

Я пробовал эту строку, но по какой-то причине она прерывает мой css. – Cheng

+0

см. Историю в проблеме GitHub, https: // github.com/react-toolbox/react-toolbox/issues/121 # issuecomment-162258230 – mattgi

0

его ясно, что WebPack не видит CSS/SCSS файлы, у вас есть какие-либо ошибки, если вы посмотрите на что вы найдет проблему.

  1. проблема может быть, что вам нужно установить Css-погрузчик и Sass погрузчик

    npm install css-loader --save-dev 
    npm install sass-loader node-sass webpack --save-dev 
    
  2. , если вы сделали это попытаться решить

    resolve: {extensions: ['', '.jsx', '.scss', '.js', '.json'], 
        modulesDirectories: [ 
         'node_modules', 
         ${process.cwd()}/node_modules 
        ] 
    }, 
    
  3. module: { 
        loaders: [ 
         { 
          test: /(\.js|\.jsx)$/, 
          exclude: /(node_modules)/, 
          loader: 'babel', 
         }, { 
          test: /(\.scss|\.css)$/, 
          loader: ExtractTextPlugin.extract('style', 'css?sourceMap&modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]!postcss!sass'), 
         }, 
         { test: /\.png$/, loader: "url-loader?limit=100000" }, 
         { test: /\.jpg$/, loader: "file-loader" }, 
        ] 
    }, 
    
+0

Downvote для копирования/вставки без каких-либо объяснений – Green

+0

У меня была аналогичная проблема, и я определил шаги для решения проблемы. 1. Обязательно установить правильные погрузчики – oshaiken

Смежные вопросы