加載 CSS 需要 css-loader 和 style-loader,他們做兩件不同的事情,css-loader會遍歷 CSS 文件,然后找到 url() 表達式然后處理他們,style-loader 會把原來的 CSS 代碼插入頁面中的一個 style 標簽中。
npm install --save-dev css-loader style-loader
//webpack中配置
module: {
loaders:[
{
test: /\.css$/, // Only .css files
loader: 'style!css' // Run both loaders
}
]
}
如果你想使用編譯 CSS,這里有兩種可用的加載器:sass-loader。下面是如何設置。
npm install --save-dev sass-loader
//webpack中配置
module: {
loaders:[
{
test: /\.scss$/,
loader: style!css!sass
}
]
}
這樣在項目中就可以直接使用:import 'App.scss'
上面的配置,會直接在html頁面生成style標簽。不利用開發調試,所以一般會采用如下配置
npm install --save-dev autoprefixer-loader
//webpack中配置
module: {
loaders:[
{
test: /\.scss$/,
loader: 'style!css?modules&importLoaders=2&sourceMap&localIdentName=[local]___[hash:base64:5]!autoprefixer?browsers=last 2 version!sass?outputStyle=expanded&sourceMap'
}
]
}
加上 modules 即為啟用,localIdentName 是設置生成樣式的命名規則,詳細說明:CSS Modules 詳解及 React 中實踐
autoprefixer 是一個自己添加前綴的插件。詳見文檔
react-bootstrap使用
安裝loadernpm install --save-dev bootstrap-loader
安裝依賴
# Bootstrap 3
npm install bootstrap-sass
# or Bootstrap 4
npm install bootstrap@v4.0.0-alpha.2
# Node SASS & other loaders needed to handle styles
npm install css-loader node-sass resolve-url-loader sass-loader style-loader url-loader
然后在webpack中配置
entry: [ 'bootstrap-loader/extractStyles', './app' ]
詳見文檔