据官网介绍,webpack-dev-server默认只是“刷新网页”
要实现热更新,除了配置options-> hot: true之外
还需要webpack内置插件: new webpack.HotModuleReplacementPlugin()
导师的代码也是这样写的。
所以,有了我所下的代码:
if (isDev) { config.devtool = 'cheap-module-eval-source-map' config.devServer = { port: 8080, host: '0.0.0.0', overlay: { errors: true }, open: true, hot: true, } config.plugins.push( new webpack.HotModuleReplacementPlugin(), new webpack.NoEmitOnErrorsPlugin(), new webpack.NamedModulesPlugin() ) }
此时重新npm run dev
去修改任意组件,chrome控制会显示 “app hot update”, 但实际上网页内容并没有实现更新?为什么会这样子?有解决该问题的同学吗?
下面是我scripts下的代码:
"dev": "cross-env NODE_ENV=development webpack-dev-server --mode development --config webpack.config.js"
config.devServer = { hotOnly:true }
devServer配置中加一句这个试试,你这个热更新生效了,只是被devServer的自动刷新功能给盖过了
webpack4有效啊,就是不知道你的为啥无效,你不用热更新更改组件有效吗?
npm i webpack-dev-server --save
解决方法:不要使用webpack自带的webpack-dev-server, 自己重新yarn add
可用版本:
"webpack-dev-server": "^3.1.4"
如果有其他解决方案,请告知我噢