webpack中hot module replacement官方文档一段话的理解问题

首先在 webpack 的世界里,万物皆 module 。一图镇楼。webpack中hot module replacement官方文档一段话的理解问题
【webpack中hot module replacement官方文档一段话的理解问题】
所谓 self-accept ,那就是说这个模块能够自己 accept() 了。全文结束。。。。。。。。。。什么鬼?这么短?哦,忘了介绍 webpack 里有一个 handler 叫做 .accept() ,一个模块应该正确地实现 .accept() 。这样当 webpack 运行在 hot 模式下,开发者把某个模块改掉之后,webpack 会去调用该模块的 .accept() handler ,把模块更新掉。文档在这里,里面演示了如何实现 .accept() 和 .dispose() handler。hot module replacement不够的话,还可以看看 vue-loader 和 style-loadervue-loader/loader.js at master · vuejs/vue-loader · GitHubstyle-loader/index.js at master · webpack/style-loader · GitHub
■网友
Self accept是指accept接口返回true or false。具体实现取决于模块自己。一般来说自包含的内容比较容易实现,但如果被外部引用或者交互就很难实现hot update,因为你更新的这部分内容会影响到引用你的其他模块。这种设计模式挺普遍的。通常一个判断是否能否适用一个实现替换,也可以二合一。其实我不知道webpack具体接口的设计但基本上都是这个模式: canAccept(updatedContent):Boolean applyUpdate(updatedContent):any


    推荐阅读