Это нормально, что 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.

"Есть мнения или рекомендации, как решить эту проблему?"

  1. В моем случае копирование файлов проекта из файловой системы Windows в файловую систему WSL2 (например, $HOME/src) исправлены проблемы с производительностью. И в этой конфигурации WSL2 намного быстрее, чем WSL1:)

  2. Если вам нужно сохранить исходный код в папке Windows (возможно, из-за рабочего процесса вашей группы разработчиков), вы можете перейти на WSL1, при условии, что вам не нужны какие-либо функции WSL2. По этой причине имеет смысл поддерживать сеансы WSL1 и WSL2. Вы можете сделать резервную копию / клонировать существующий сеанс (см.wsl --export а также wsl --import) и установите версию WSL для дистрибутива с wsl --set-version.

  3. Вы также можете рассмотреть возможность совместного использования папки Windows и ее монтирования через CIFS. Сообщается, что это намного быстрее (хотя и не так быстро, как ext4). См. Эту проблему на github и предлагаемый обходной путь от EvilVir 4 июля.

Другие вопросы по тегам