—watch 需要手动刷新浏览器
- 开启 —watch 参数

或者在 webpack.config.js 中去设置
module.exports = {watch:true, // 监听开启watchOptions:{ignored:/node_modules/, // 忽略监听的文件夹aggregateTimeout:300, // 文件改动后等300ms 执行。poll:300 // 每次轮询文件变化的时长},}
热更新机制 — 浏览器自动刷新
安装 webpack-dev-server
yarn add webpack-dev-server -D
package.json 中添加 script 命令

- 在webpack.config.json 中进行配置
plugins: [new webpack.HotModuleReplacementPlugin(),new HtmlWebpackPlugin({title: "hello webpack",filename: "main.html",}),],devServer:{contentBase:'./dist',hot:true}
使用 webpack-dev-middleware
将webpack 输出的文件传输给服务器。
原理分析
- webpack compile: 将Js编译成 Bundle
- HMR Server:将热更新的文件输出给HMR Runtime
- Bundle Server:提供文件在浏览器的访问 (启动一个本地服务器)
- HMR runtime:会被注入到浏览器,更新文件的变化。
- bundle.js 构建输入的文件
