如何使用 Vagrant VM 通过共享文件夹启用热重载?

IT技术 reactjs vagrant reload redux vagrantfile
2021-05-05 16:07:38

我有一个非常基本的 react/redux 应用程序,它利用热重载(即,当我保存对源代码的更改时,它会通过 webpack 在浏览器中相应地更新我的应用程序的内容,保留我的应用程序的状态)。这适用于 myhost 机器。

但是,如果我使用带有同步文件夹的基于 vagrant 的工作流程(以便我可以使用我喜欢的非终端文本编辑器),并且我对我的主机上的源代码进行更改并保存,则不会触发热重载。但是,如果我在来宾计算机上进行/保存更改(为简单起见仅使用 nano),则热重载确实会触发。

澄清一下,从主机保存的更改会反映在来宾计算机的文件中,但不会触发热重载。如果我将 helloworld 更改为 Hello, World! 在我的主机上,该文件的来宾机器副本也会说 Hello, World!,但是直到我也在来宾机器上保存该更改之前,不会触发热重载。

1个回答

此问题可能是由 Virtualbox 自己的共享文件夹文件系统引起的。

根据https://github.com/webpack/webpack-dev-server/issues/155,你可以试试这个:

webpack-dev-server --watch-poll

此外,我相信使用 rsync 将始终有效(但这会稍微改变您的工作流程):

Webpack 开发服务器重新加载在虚拟机上不起作用