00-watch and watchOption

323 阅读1分钟

监听和监听配置

webpack监听文件变化

有两种方式开启:

  1. 在Bush上执行:webpack --watch

  2. 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
      },
    }