It hotreloads extracted stylesheets extracted with ExtractTextPlugin
.
No configuration needed. A better css-hot-loader.
You want to hot reload only stylesheets, not the whole page. Great for editing dynamic views.
npm install extracted-loader --save-dev
or
yarn add extracted-loader --dev
And then you can use it for example as so:
const isDev = process.env.NODE_ENV === 'development'
config.module.rules.push({
test: /\.css$/,
use: ['extracted-loader'].concat(ExtractTextPlugin.extract({
filename: isDev ? "[name].css" : "[name].[contenthash].css",
/* Your configuration here */
}))
})
config.plugins.push(new ExtractTextPlugin('index.css'))
For hot reloading to work it is important to not use [contenthash]
in development configuration.
config.module.rules.push({
test: /\.(sa|sc|c)ss$/,
use: ['extracted-loader'].concat(ExtractTextPlugin.extract({
use: [
"babel-loader",
{
loader: 'css-loader',
options: {
url: true,
minimize: !isDev,
sourceMap: isDev,
importLoaders: 2
}
},
{
loader: 'postcss-loader',
options: {
sourceMap: isDev,
plugins: [
require('autoprefixer')({
/* options */
})
]
}
},
{
loader: 'sass-loader',
options: {
sourceMap: isDev
}
}
]
}))
})
config.plugins.push(new ExtractTextPlugin('index.css'))
By reloading all relevant <link rel="stylesheet">
when extracted text changes.
Yes, please
MIT