首页 > 解决方案 > WSL 2,React 不通过文件更改重新加载?

问题描述

我最近安装了 WSL 2,但是当我使用 create-react-app 创建应用程序并使用 npm start 时,当我编辑某些文件时,该应用程序不会重新加载。我错过了什么吗?

标签: wsl-2

解决方案


根据我的经验,当您的源位于 Windows 驱动器(例如/mnt/c)上时会发生这种情况,因为 WSL 用于这些驱动器的驱动程序尚不支持 inotify。有关相关问题的更多详细信息,请参阅此答案

至少有两种可能的解决方案:

  • 如果您需要 WSL2,推荐的解决方案是将文件放在 WSL 的 ext4 根文件系统上。例如,在某处/home/。这具有比 Windows 驱动器快得多额外优势。

  • 或者,您可以将您的实例转换为 WSL1,它确实支持 Windows 驱动器上的 inotify,并且在处理那里的文件时要快得多。如果需要,您还可以保留 WSL1 和 WSL2 副本。它们都有不同的用途,但对于大多数 React/Web 开发,我认为你会发现 WSL1 更合适。

    您可以使用 备份现有发行版wsl --export <distroname> <filename.tar>,然后使用 更改为 WSL1 wsl --set-version <distroname> 1。或者您可以将备份重新导入为wsl --import <newDistroName> <directory> <filename.tar> --version 1.

  • 此外,在我对其他答案的测试中,当运行 VSCode 并在 VSCode 终端中运行观察程序时,它似乎对我有用。我仍然怀疑这是某种“误报”,但您可能想试一试。


推荐阅读