监听和监听配置
webpack监听文件变化
有两种方式开启:
-
在Bush上执行:webpack --watch
-
webpack.config.js 的 watch 为 true
const watch = true, module.export = { watch }
默认情况下:
监听的配置:After the initial build, webpack will continue to watch for changes in any of the resolved files(经过初始化之后,webpack就知道所有打包过得文件了,对每个打包过得文件进行监听,如果更新时间发生变化,那么就重新打包)
watchOption
- aggregateTimeout:监听到打包之后的更新间隔,注意是更新间隔,也就是说webpack还是监听到了更新,并缓存起来,等到每次到了 aggregateTimeout 才执行一次重新构建
- ignored: 忽略那些文件监听
- poll: 采用轮询,设置轮询的时间(防止 CPU 太累了)
拓展watch方式
-
webpack-dev-middleware 没有使用 server,需要自己手动创建server(通过node),然后将它作为中间件(处理打包的结果)丢给server,server可以将这些资源暴露出去,再通过热更新加载最新的资源
-
webpack5内置了 webpack-dev-server,将所有的监听配置都可以在 devServer.watchFile 传入
const devServer = { watchFiles: { paths: ['src/**/*.php', 'public/**/*'], // ignored // poll }, }