Это нормально, что Angular-CLI намного медленнее в wsl2, чем Powershell по умолчанию?
В настоящее время работает веб-разработчиком в компании, использующей Windows-машины. (не суди)
В своих последних проектах я работал с Angular и Angular-CLI, и я заметил, что основные команды CLI, такие как ng g c
, ng serve
, ng build
и т.д. занимает гораздо больше времени в терминале wsl2 (с использованием ubuntu 20.04), чем в Powershell по умолчанию.
Есть мнения или рекомендации, как решить эту проблему?
Заранее спасибо!
1 ответ
Если файлы вашего проекта хранятся в файловой системе Windows и доступны / запускаются из WSL2, тогда да, это "нормально" (или, скорее, известно). В документации Microsoft упоминается такое поведение:
Если вы будете использовать свой дистрибутив WSL Linux для доступа к файлам проекта в файловой системе [...] Windows, вы добьетесь более высокой производительности в файловых системах ОС, используя WSL 1.
У меня была такая же медлительность с проектом Angular, использующим WSL2, и с моими файлами в файловой системе Windows.
"Есть мнения или рекомендации, как решить эту проблему?"
В моем случае копирование файлов проекта из файловой системы Windows в файловую систему WSL2 (например,
$HOME/src
) исправлены проблемы с производительностью. И в этой конфигурации WSL2 намного быстрее, чем WSL1:)Если вам нужно сохранить исходный код в папке Windows (возможно, из-за рабочего процесса вашей группы разработчиков), вы можете перейти на WSL1, при условии, что вам не нужны какие-либо функции WSL2. По этой причине имеет смысл поддерживать сеансы WSL1 и WSL2. Вы можете сделать резервную копию / клонировать существующий сеанс (см.
wsl --export
а такжеwsl --import
) и установите версию WSL для дистрибутива сwsl --set-version
.Вы также можете рассмотреть возможность совместного использования папки Windows и ее монтирования через CIFS. Сообщается, что это намного быстрее (хотя и не так быстро, как ext4). См. Эту проблему на github и предлагаемый обходной путь от EvilVir 4 июля.