在我最近的项目中,我使用 Angular 和 Angular-CLI,我注意到在 wsl2 终端(使用 ubuntu 20.04)中基本的 CLI 命令(如ng g c
、ng serve
等ng build
)比在默认的 powershell 上花费更多的时间。
任何意见或建议如何解决这个问题?
在我最近的项目中,我使用 Angular 和 Angular-CLI,我注意到在 wsl2 终端(使用 ubuntu 20.04)中基本的 CLI 命令(如ng g c
、ng serve
等ng build
)比在默认的 powershell 上花费更多的时间。
任何意见或建议如何解决这个问题?
如果您的项目文件存储在 Windows 文件系统上并从 WSL2 访问/启动,那么是的,它是“正常的”(或者更确切地说,是已知的)。Microsoft 文档提到了这种行为:
如果您将使用 WSL Linux 发行版访问 Windows 文件系统上的项目文件,[...] 您将通过使用 WSL 1 在整个 OS 文件系统中获得更快的性能。
我在使用 WSL2 的 Angular 项目中遇到了同样的缓慢,我的文件在 Windows 文件系统上。
“有什么意见或建议如何解决这个问题?”
在我的例子中,将项目文件从 Windows 文件系统复制到 WSL2 文件系统(例如$HOME/src
)修复了性能问题。在这种配置中,WSL2 实际上比 WSL1 快得多 :)
如果您需要将源代码保存在 Windows 文件夹中(可能是由于您的开发团队的工作流程),那么您可能需要降级到 WSL1,假设您不需要 WSL2 的任何功能。出于这个原因,同时保留 WSL1 和 WSL2 会话是有意义的。您可以备份/克隆您现有的会话(请参阅wsl --export
和wsl --import
)并使用wsl --set-version
.
您还可以考虑共享 Windows 文件夹并通过 CIFS 挂载它。据报道,这要快得多(尽管不如 ext4 快)。请参阅7 月 4 日 EvilVir 的这个 github 问题和建议的解决方法。