npm run watch
,启动webpack检测打包,不会退出进程,只要修改文件,会自动生成新的文件live-server
,启动一个服务,打开html文件webpack-dev-server
yarn add webpack-dev-server
node server.js
,启动服务localhost:3000
yarn install
npm run serve
localhost:8080
HMR
的原理是什么呢?如何可以做到只更新一个模块中的内容呢?webpack-dev-server
会创建两个服务:提供静态资源的服务(express
)和Socket
服务(net.Socket
);express server
负责直接提供静态资源的服务(打包后的资源直接被浏览器请求和解析)HMR Socket Server
,是一个socket
的长连接:.json
(manifest
文件)和.js
文件(update chunk
);HMR runtime
机制,加载这两个文件,并且针对修改的模块进行更新;