如何设置css-modules?

时间:2017-04-18 18:57:49

标签: javascript webpack css-modules react-css-modules

Official documentation太复杂了,不适合我。有没有人知道如何使用webpack设置css-modules的好文章?

react-css-modules无法帮助

更新

这是我的模块配置。它是在尝试达到我的目标时编辑的,因此它与原始目标不同。

module: {
    rules: [
        { test: /\.js$/, exclude: /node_modules/, loader: "react-hot-loader!babel-loader" },
        {
            test: /\.scss$/,
            use: [{
                loader: "style-loader"
            }, {
                loader: "css-loader"
            }, {
                loader: "sass-loader"
            }]
        }, {
            test: /\.png$/,
            loader: 'file-loader?name=[name]--[hash].[ext]',
        }
    ],
    loaders: [{
        test: /\.css/,
        loader: 'style-loader!css-loader&modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]'
    }, {
      test: /\.html$/,
      loader: 'file-loader',
    }]
},

2 个答案:

答案 0 :(得分:0)

这很简单

您需要样式加载器,css-loader和设置模块模式。

{
  test: /\.css$/,
  loader: 'style!css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]' 
}
像那样。 其中[name]__[local]___[hash:base64:5]表示webpack将为您生成的css类的结构。

我建议按照本指南,真的那么简单。 https://github.com/css-modules/webpack-demo

答案 1 :(得分:0)

loaders: [{
    test: /\.css$/,
    loader: 'style!css-loader?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5]',
  }],

css-loader之后,您需要添加?,然后添加modules,依此类推。

在组件中,您需要导入样式:

import style from './App.css';

style - 它只是具有与选择器匹配的属性的对象。

组件中的用法看起来如此:

const App = props => (   
<header className={style.header}>
   <Link to="/" className={style.link}>Awesome blog</Link>
</header>);

App.css看起来如此:

.header {
    font-size: 35px;
    text-align: center;
    line-height: 1.3;
}