如何在Webpack 5中不修改文件触发文件监听重编译?
Webpack 5 手动触发特定文件重编译(无需修改磁盘文件)
我正在开发Webpack 5插件,需要在不实际修改文件的前提下手动触发监听文件的重编译,主要用于一些高级HMR(Hot Module Replacement)场景。
之前在Stack Overflow看到过相关解决方案,但该方案已过时,不适用于Webpack 5。旧方案通过compiler.watchFileSystem操作文件监听器,但当前环境中compiler.watchFileSystem完全没有watcher属性,无法获取fileWatchers映射,旧代码示例如下:
compiler.watchFileSystem.watcher.fileWatchers.get(filePath).directoryWatcher.setFileTime( filePath, new Date().getTime(), false, false, "change" );
或:
compiler.watchFileSystem.watcher.fileWatchers.find(...).directoryWatcher.setFileTime(...)
已尝试的操作
- 查阅Webpack 5源码,查找
watcher和fileWatchers是否被重命名或重构 - 阅读Webpack 5官方文档,未找到明确指引
- 寻找模拟“文件变更”事件的其他方法,未找到具体可行方案
我的目标
- 让Webpack认为特定文件已变更(无需实际修改磁盘上的文件)
- 触发该文件的重编译
有人知道如何在Webpack 5中实现此需求吗?或者是否有其他编程方式触发特定文件的重编译?若能提供指引或示例,将不胜感激!
内容的提问来源于stack exchange,提问作者Patrick Gunnar
相关产品推荐
相关产品推荐

