是因为容器中的文件系统和宿主机的文件系统是隔离的,当文件在宿主机上发生更改时,容器内的文件系统并不会自动同步更新。这导致webpack-dev-server无法检测到文件的更改并重新编译。
解决这个问题的方法有两种:
- 使用Docker的文件同步功能:可以通过在运行容器时挂载宿主机的文件系统到容器内部,使得容器内的文件系统和宿主机的文件系统保持同步。具体操作可以参考Docker的文档或者使用Docker的volume功能。
- 使用webpack-dev-middleware替代webpack-dev-server:webpack-dev-middleware是一个Express中间件,可以将webpack编译后的文件输出到内存中,而不是写入磁盘。这样可以避免容器文件系统和宿主机文件系统的同步问题。可以在容器中运行一个Express服务器,并使用webpack-dev-middleware来实现文件的热更新。
以上是针对容器化的webpack-dev-server不响应文件更改的解决方案。对于容器化的开发环境,需要注意文件系统的同步和容器内外的文件变更通知机制,以确保开发过程中的文件更改能够及时生效。