У меня возникли следующие проблемы: <br/> 1. Долгий отклик приложения (загрузка страницы, первый запрос занимает около 5 секунд). <br/> 2. Приложение, запущенное в Docker, не обновляется при изменении исходников, речь идет о фронтэнде с запущенным Vite в режиме разработки. <br/> <br/> В документации Vite указано следующее предупреждение: <br/> <br/> <blockquote>Когда Vite работает на WSL2, наблюдение за файловой системой не работает, если файл редактируется приложениями Windows (процессами, не относящимися к WSL2). Это связано с ограничениями WSL2. Это также касается работы в Docker с бэкендом WSL2.<br/><br/> Чтобы исправить это, вы можете: <br/><br/> Рекомендуется: Использовать WSL2 приложения для редактирования ваших файлов.<br/> Также рекомендуется переместить папку проекта за пределы файловой системы Windows. Доступ к файловой системе Windows из WSL2 медленный. Устранение этой части производительности улучшит общую работу.<br/> Установить { usePolling: true }.<br/> Обратите внимание, что использование polling приводит к высокой загрузке ЦП.</blockquote> <br/> <br/> У меня остались вопросы по двум пунктам: <br/> <br/> 1. <b>Использовать WSL2 приложения для редактирования файлов</b> – какие конкретно приложения имеются в виду? <br/> <br/> 2. <b>Рекомендуется переместить папку проекта за пределы файловой системы Windows</b> – что именно подразумевается? Нужно ли создавать отдельный раздел на диске с файловой системой ext4?
Да, работать с Docker, Windows, WSL2 и Vite вместе можно, но нужно учитывать некоторые нюансы, которые могут повлиять на производительность и удобство работы. Рассмотрим ваши вопросы подробнее. ### 1. Использовать WSL2 приложения для редактирования файлов Когда говорят об использовании WSL2 приложений для редактирования файлов, обычно имеется в виду использование редакторов и IDE, которые могут быть запущены непосредственно в WSL2. Вот несколько примеров: - **Visual Studio Code**: может быть установлен и запущен на Windows, но вы можете использовать расширение **Remote - WSL**, чтобы подключаться к вашей WSL среде и редактировать файлы напрямую из WSL2. Это наиболее удобный вариант. - **Neovim** или **Vim**: текстовые редакторы, доступные в командной строке, которые можно использовать прямо в WSL2. - **Sublime Text** и **Atom**: также имеют возможность открывать файлы через WSL. Вам нужно будет установить их так, чтобы они могли взаимодействовать с вашим окружением WSL. ### 2. Рекомендуется переместить папку проекта за пределы файловой системы Windows Этот пункт подразумевает, что если вы хотите использовать WSL2 для разработки, то лучше всего разместить проект в файловой системе WSL2, а не на файловой системе Windows (например, в `C:\`). Вы можете создать проект в `~/projects` внутри вашей WSL2-среды, например: ```bash mkdir -p ~/projects/my-vite-app cd ~/projects/my-vite-app ``` Это обеспечит лучшую производительность, так как доступ к файлам в WSL2 будет происходить быстрее, чем при доступе к файлам на разделе Windows. Создание отдельного раздела на диске с файловой системой ext4 не является необходимым шагом, если вы просто переместите ваш проект в WSL2. Используйте стандартные директории, предоставляемые WSL, находящиеся в пределах `/home`. ### Дополнительные рекомендации - **Используйте `usePolling: true`**: Этот параметр может помочь с проблемой обновления файлов, но, как упоминалось, может привести к повышенному использованию CPU, поэтому используйте его осторожно. - **Обновите Docker**: Убедитесь, что у вас установлена последняя версия Docker, в ней могут быть улучшения производительности и совместимости с WSL2. - **Производительность Vite**: Если после всех улучшений проблемы сохраняются, посмотрите на конфигурацию Vite и Docker — возможно, необходимо оптимизировать сборку или окружение. Следуя этим рекомендациям, вы должны сможете значительно улучшить опыт работы с Docker, WSL2 и Vite.
Use WSL2 applications to edit your files
wsl2 это виртуалка майкрософт, в которой ты запускаешь linux приложения docker и т.п. Соответственно это любое приложение linux (среды разработки, скрипты, утилиты обновления проекта, git и т.п.)
Если ты с помощью windows приложений будешь редактировать файлы, находящиеся в linux контейнере, то приложения linux, запущенные внутри wsl2, не будут видеть эти изменения (буквально файл может остаться старым содержимым какое то время, а не только события изменений), там файловая система сделана каким то хаком, поэтому лезть туда из windows, пока запущен этот wsl не советую, так как возможны глюки, решаемые только перезагрузкой (например удалить файл в одном месте и одновременное его изменение в другом)
p.s. напомню что многие утилиты linux имеют для windows свои аналоги, иногда там есть некоторые несовместимости по именованию файлов и путей (символ разделителя каталога '/' и '\'), поэтому git для windows отработает как windows приложение а вот запущенный из wsl2 - как linux.