2017-04-18 4 views
0

Official documentation viel zu kompliziert und funktioniert nicht für mich. Kennt jemand einen guten Artikel, wie man css-modules mit Webpack einrichtet?Wie man css-Module einrichtet?

react-css-modules nicht entweder

aktualisieren

Hier ist meine Module Config helfen. Es wurde bearbeitet, während ich versuchte, mein Ziel zu erreichen, also unterscheidet es sich vom Original.

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', 
    }] 
}, 

Antwort

0

Es ist ziemlich einfach

Sie benötigen Stil-loader, CSS-loader und setzen Modul-Modus.

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

So. Wobei [name]__[local]___[hash:base64:5] die Struktur Ihrer CSS-Klassen angibt, die Webpack für Sie generiert.

Ich empfehle, folgen Sie dieser Anleitung, ist wirklich so einfach. https://github.com/css-modules/webpack-demo

+0

das ist, was ich getan habe und meine CSS-Klassen noch ohne Präfixe haben –

+0

u können Ihre webpack Config teilen? –

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

nach css-loader müssen Sie ? dann modules hinzufügen und so weiter.

In der Komponente, die Sie benötigen Stil importieren:

import style from './App.css'; 

Stil - es ist das Objekt nur mit Eigenschaften, die Übereinstimmung zu Selektoren.

und Verwendung in der Komponente sieht so:

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

App.css sieht so:

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