1. 开启hot: true但是热更新无效
解决需要兼容webpack5.X
module.exports = {
target: 'web', // webpack5.x 加上之后热更新才有效果
}
2. 如果使用了mini-css-extract-plugin插件(将样式以link的形式引入而不是style标签引入),则样式的热更新无效
解决:需要判断开发模式使用style注入的形式,否则使用link引用的形式
// webpack.common.js
// 是否开发者模式
const devMode = process.env.NODE_ENV !== 'production'
module.exports = {
module: {
rules: [
{
test: /\.css$/,
exclude: /node_modules/,
use: [
devMode ? 'style-loader' : MiniCssExtractPlugin.loader,
'css-loader'
]
},
{
test: /\.less$/,
exclude: /node_modules/,
use: [
devMode ? 'style-loader' : MiniCssExtractPlugin.loader,
'css-loader',
'less-loader'
] // 解析 less
},
]
}
}
3. 使用optimize-css-assets-webpack-plugin时会有如下警告,但不影响打包
解决:webpack 5.x 的问题,可以考虑换个插件(官方准备弃用了)
optimize-css-assets-webpack-plugin/issues134
yarn add css-assets-webpack-plugin --dev,