wsl2 中的 Angular-CLI 比默认的 powershell 慢得多是正常的吗?
Posted
技术标签:
【中文标题】wsl2 中的 Angular-CLI 比默认的 powershell 慢得多是正常的吗?【英文标题】:Is it normal that the Angular-CLI is much slower in wsl2 than the default powershell? 【发布时间】:2020-11-17 15:56:26 【问题描述】:在我最近的项目中,我使用 Angular 和 Angular-CLI,我注意到基本的 CLI 命令,如 ng g c
、ng serve
、ng build
等在 wsl2 终端中花费更多时间(使用 ubuntu 20.04 ) 而不是在默认的 powershell 上。
有什么意见或建议如何解决这个问题?
【问题讨论】:
我昨天刚刚升级到 WSL2,我现在正在经历这个:( 您好,您能否详细说明一下“更多时间”的含义?我在运行ng serve
(即使使用--verbose=true
)时遇到问题,因为它似乎会挂起大约五分钟才能继续。它过去工作得更快(即几秒钟)。
【参考方案1】:
如果您的项目文件存储在 Windows 文件系统上并从 WSL2 访问/启动,那么是的,它是“正常的”(或者更确切地说,是已知的)。 Microsoft documentation 提到了这种行为:
如果您将使用 WSL Linux 发行版访问 Windows 文件系统上的项目文件,[...] 您将通过使用 WSL 1 实现跨操作系统文件系统的更快性能。
我在使用 WSL2 的 Angular 项目中遇到了同样的缓慢,我的文件在 Windows 文件系统上。
“对于如何解决这个问题有什么意见或建议吗?”
在我的例子中,将项目文件从 Windows 文件系统复制到 WSL2 文件系统(例如$HOME/src
)修复了性能问题。在这种配置中,WSL2 实际上比 WSL1 快得多:)
如果您需要将源代码保存在 Windows 文件夹中(可能是由于您的开发团队的工作流程),那么您可能需要降级到 WSL1,假设您不需要 WSL2 的任何功能。出于这个原因,同时保留 WSL1 和 WSL2 会话是有意义的。您可以备份/克隆现有会话(请参阅 wsl --export
和 wsl --import
)并使用 wsl --set-version
为发行版设置 WSL 版本。
您也可以考虑共享 Windows 文件夹并通过 CIFS 挂载它。据报道,这要快得多(尽管不如 ext4 快)。请参阅 this github issue 以及 7 月 4 日 EvilVir 建议的解决方法。
【讨论】:
Tazaf,如果您想将我答案中的其他项目合并到您的答案中,我不介意(然后我可以删除我的答案)。如果您没有在此问题上产生一些新活动,我就不会看到这个 20 天前的问题。 @NotTheDr01ds 你太公平了。我可以更新我的答案以添加详细信息,但如果您提交并编辑我的答案,我会感觉更好,这样您至少可以在一定程度上获得额外信息。 啊,对 - 回答的时候还很新,所以没有意识到这是一个选择。我现在就这样做。谢谢!以上是关于wsl2 中的 Angular-CLI 比默认的 powershell 慢得多是正常的吗?的主要内容,如果未能解决你的问题,请参考以下文章
Windows 10专业版安装 WSL2 (Ubuntu 20.04)
Windows 10专业版安装 WSL2 (Ubuntu 20.04)
什么是 tslint 黑名单,为什么 angular-cli 默认 rxjs 在 tslint.json 的列表中?