2017-04-18 3 views
0

Official documentation beaucoup trop compliqué et ne fonctionne pas pour moi. Quelqu'un sait-il un bon article comment configurer css-modules avec webpack?Comment configurer les css-modules?

react-css-modules n'a pas aidé non

Mise à jour

Voici ma config de modules. Il a été modifié en essayant d'atteindre mon objectif, donc il diffère de l'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', 
    }] 
}, 

Répondre

0

Il est assez simple

Vous avez besoin d'un style chargeur, chargeur et css-mode module défini.

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

Comme cela. Où [name]__[local]___[hash:base64:5] indique la structure de vos classes CSS que webpack va générer pour vous.

Je recommande de suivre ce guide, c'est vraiment simple. https://github.com/css-modules/webpack-demo

+0

c'est ce que je faisais et encore mes classes CSS sans préfixes –

+0

u peut partager votre config webpack? –

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

après css-loader vous avez besoin d'ajouter ? puis modules et ainsi de suite.

Dans le composant que vous devez importer le style:

import style from './App.css'; 

de style - il est juste objet avec des propriétés qui correspondance aux sélectionneurs.

et l'utilisation dans le composant semble si:

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

App.css a l'air si:

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