最近在研究react,根據官方提供的create-react-app腳手架搭建了一個項目,可是像下面這樣引入CSS的時候,會發現全局都會生效,這明顯不合理嘛,那麼,怎麼設置呢?css
import './header.css'; // 這樣引入至關於全局引入了
咱們知道,在webpack中,能夠經過CSS-loader和style-loader對CSS文件進行一些打包處理,裏面有一些配置項,能夠將CSS打包成一個模塊,而後引入,通常webpack是這樣設置的node
{ test: /\.css$/, loader: 'style-loader!css-loader?modules&importLoaders=1&localIdentName=[name]_[local]__[hash:base64:5]' }
其中modules爲true時,就是把CSS打包爲模塊的控制參數react
用create-react-app建立出來的項目,咱們得先找到那個配置文件在哪,文件默認路徑爲:\node_modules\react-scripts\config\webpack.config.dev.js,而後找到以下代碼,新增一個參數modules:true就能夠了:webpack
{ test: /\.css$/, use: [ require.resolve('style-loader'), { loader: require.resolve('css-loader'), options: { importLoaders: 1, modules: true }, }, { loader: require.resolve('postcss-loader'), options: { // Necessary for external CSS imports to work // https://github.com/facebookincubator/create-react-app/issues/2677 ident: 'postcss', plugins: () => [ require('postcss-flexbugs-fixes'), autoprefixer({ browsers: [ '>1%', 'last 4 versions', 'Firefox ESR', 'not ie < 9', // React doesn't support IE8 anyway ], flexbox: 'no-2009', }), ], }, }, ], },
在你須要用到的模塊引入git
import headerCss from './header.css';
固然,別忘了生產線的配置也改下,也就是webpack.config.prod.js文件github