解决webpack-dev-server热更新异常情况
如果是高效的热更新,页面就不会刷新。并且只会加载对应的更新资源。
开发中碰到的异常情况:
- 热更新是页面刷新reload的情况
- 危害:所有的资源都要重新获取,并且所有的接口还要重新调用,页面也要重新渲染。非常的浪费时间和资源
- webpack5中热更新失效
- 弹窗的热更新失效
1. 热更新是页面刷新reload的情况
解决办法:
- dev模式下,不能用merge。(‘webpack-merge’)
- dev模式下,不能用 MiniCssExtractPlugin.loader
- “dev”: “webpack-dev-server —config webpack.dev.js —hot —open —progress”,
- —hot 不能少,或者devServer里配置 hot: true
2. webpack5中热更新失效
环境是webpack5
解决办法:
// 在entry和output的同级处,加上 target: 'web'module.exports = {+ target: 'web',entry,output: {path: path.resolve(__dirname, 'dist')},...}
3. 弹窗的热更新失效
问题发生的场景:
// 父组件<template>一个子组件是弹窗<child-el-dialog></child-el-dialog></template><script></script>// 子组件 弹窗 <child-el-dialog></child-el-dialog><template>...</template><script>在这里面做修改,热更新会失效!!</script>
解决办法:
// 父组件中<template>一个子组件是弹窗<child-el-dialog></child-el-dialog></template><script>子组件改完了,然后在父组件中,这个位置 随便写一个js,比如 console.log(11),然后 cmd+s 保存,热更新就能生效~</script>
