Webpack踩坑——Webpack-dev-server无法自动更新
如下所示,设置了webpack-dev-server后修改html代码页面无法更新,网上搜了一大堆说什么需要设置hot和inline发现都不行,最后发现是因为在package.json中配置了 browserslist字段,删了就可以了。
const HtmlWebpackPlugin = require(html-webpack-plugin);
const {
resolve } = require(path);
module.exports = {
entry: ./src/js/index.js,
output: {
filename: js/build.js,
path: resolve(__dirname, build)
},
module: {
rules: [
// loader的配置
{
// 处理less资源
test: /.less$/,
use: [style-loader, css-loader, less-loader],
},
{
// 处理css资源
test: /.css$/,
use: [style-loader, css-loader],
// outputPath: css
},
{
// 处理图片资源
test: /.(jpg|png|gif|jpeg)$/,
loader: url-loader,
options: {
limit: 8 * 1024,
name: [hash:10].[ext],
// 关闭es6模块化
esModule: false,
// 设置图片输出的路径
outputPath: images/
}
},
{
// 处理html
test: /.html$/,
loader: html-loader
},
{
// 处理其他资源
exclude: /.(html|css|js|less|jpg|jpeg|gif|png)$/,
loader: file-loader,
options: {
name: [hash:10].[ext],
outputPath: compontents
}
}
]
},
plugins: [
// plugins的配置
new HtmlWebpackPlugin({
template: ./src/index.html
})
],
devServer: {
contentBase: resolve(__dirname, build),
compress: true,
port: 3000,
open: true,
// inline: true
},
mode: development
}
//注意事项:webpack-dev-server在更新的时候要去掉package.json中的browserslist字段
"browserslist": {
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
],
"production": [
">0.2%",
"not dead",
"not op_mini all"
]
},
"eslintConfig": {
"extends": "airbnb-base"
}
// 附上package.json中的部分代码
"scripts": {
"test": "echo "Error: no test specified" && exit 1",
"build": "webpack",
"start": "webpack-dev-server"
}
