Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

文件监听原理 #110

Open
TieMuZhen opened this issue Mar 13, 2022 · 0 comments
Open

文件监听原理 #110

TieMuZhen opened this issue Mar 13, 2022 · 0 comments
Labels

Comments

@TieMuZhen
Copy link
Owner

在发现源码发生变化时,自动重新构建出新的输出文件。

Webpack开启监听模式,有两种方式:

  • 启动webpack命令时,带上--watch参数
  • 在配置webpack.config.js中设置watch: true

原理: 轮询判断文件的最后编辑时间是否变化,如果某个文件发生了变化,并不会立刻告诉监听者,而是先缓存起来,等时间到 aggregateTimeout后再执行。

module.export = {    
  // 默认false,也就是不开启    
  watch: true,    
  // 只有开启监听模式时,watchOptions才有意义    
  watchOptions: {        
    // 默认为空,不监听的文件或者文件夹,支持正则匹配        
    ignored: /node_modules/,       
    // 监听到变化发生后会等300ms再去执行,默认300ms       
    aggregateTimeout: 300,        
    // 判断文件是否发生变化是通过不停询问系统指定文件有没有变化实现的,默认每秒问1000次        
    poll:1000    
  }
}

缺点: 每次需要手动刷新浏览器

Webpack的热更新又称热替换(Hot Module Replacement),缩写为HMR。 这个机制可以做到不用刷新浏览器而将新变更的模块替换掉旧的模块。

所以实际中可以多用热更新少用文件监听

@TieMuZhen TieMuZhen changed the title 文件监听原理呢? 文件监听原理 Mar 13, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant