webpack和react识别css类名

时间:2017-08-01 09:42:20

标签: javascript reactjs webpack ecmascript-6

我有一个React组件,我正在尝试导入css。

import './Example.css';

class Example extends Component {
  return <div className="example-class">Example</div>
}

我的文件结构如下所示

build
  -index.js
src
  -index.js
  -Example.css

我的webpack.config.js如下所示。

目前所有内容都已构建,但css似乎没有被提升。

有人能看到我在构建后访问我的类名需要做什么吗?

var path = require('path');
module.exports = {
  entry: './src/index.js',
  output: {
    path: path.resolve(__dirname, 'build'),
    filename: 'index.js',
    libraryTarget: 'commonjs2'
  },
  module: {
    rules: [
      {
        test: /\.js$/,
        include: path.resolve(__dirname, 'src'),
        exclude: /(node_modules|bower_components|build)/,
        use: {
          loader: 'babel-loader',
          options: {
            presets: ['env']
          }
        }
    },
    {
      test: /\.css$/,
      use: [ 'css-loader' ]
    }
    ]
  },
  externals: {
    'react': 'commonjs react'
  }
};

2 个答案:

答案 0 :(得分:2)

css-loader仅处理CSS,但不会使其在浏览器中可用。您可以使用style-loader,将CSS注入<style>标记。 (另见Loading CSS

{
  test: /\.css$/,
  use: [ 'style-loader', 'css-loader' ]
}

另一种可能性是使用extract-text-webpack-plugin提取CSS。除了JavaScript包之外,它还将提取CSS并创建.css文件。然后,您可以在HTML中包含CSS。

答案 1 :(得分:-1)

你可以试试这个:

import styles from './Example.css';

class Example extends Component {
  return <div className={styles.example-class}>Example</div>
}