В предыдущих постах мы проделали титаническую работу по настройке инструментов для веб-разработки в WSL. Осталось только решить вопрос с интеграцией Windows приложений с этими инструментами.
В то время, как мы используем WSL для запуска консольных приложений, для программирования мы пользуемся редакторами кода и IDE. Они, в свою очередь, требуют наличия исполняемых файлов для интеграции, например, для управления репозиторием, запуска скриптов NPM, установки зависимостей, запуска Language Server’а для лучшего автодополнения и прочее.
Настраивать все инструменты в Windows и поддерживать два окружения не вариант. Вместо этого нужен способ запуска WSL приложений напрямую из Windows.
Алиасы (основные)
Когда я задался этим вопросом, я открыл для себя проект leongrdic/wsl-alias
, который позволяет создавать .bat
скрипты перенаправляющие вызов команды в WSL. Я даже принял участие в развитии этого инструмента (pull request).
Для установки откройте консоль с WSL и выполните команду:
bash <(curl -o- https://raw.githubusercontent.com/leongrdic/wsl-alias/v2.4/install.sh)
Она скачает и запустит скрипт установки, который склонирует репозиторий в вашу домашнюю директорию, поможет настроить вызов команды mount
без запроса пароля и предложит выбрать алиас по-умолчанию для вызова любой команды. По окончанию работы скрипта, вы получите путь до директории, который необходимо добавить в переменную окружения PATH в Windows (туториал).
Теперь создадим алиасы. Для этого в консоли WSL выполняем:
cd ~/.wsl-alias/bin/ ./wsl-alias add ssh ssh ./wsl-alias add node node ./wsl-alias add npm npm ./wsl-alias add npx npx ./wsl-alias add php php ./wsl-alias add composer composer
Это должно создать bat-скрипты в директории C:\Users\yourusername\wsl-alias
, которые вы можете указывать в настройках вашего редактора кода.
Вы могли обратить внимание, что я не указал создание алиаса для Git. С ним отдельная история, которую мы рассмотрим далее.
Алиас для Git
Изначально я работал с Git через создание алиаса, указанным выше путем. Я использую в работе PhpStorm, и он очень не плохо интегрировался данным путем, потому что я настроил возврат кода ответа исходной команды и конвертирование путей в аргументах между Windows и WSL. Единственное, что IDE не понимала ситуацию, когда происходил конфликт слияния, и некоторые другие не важные кейсы.
Но оказалось, что использовать данный алиас в VS Code невозможно. Он там просто не работает. После нескольких часов отладки, я сдался и начал искать другой путь решения проблемы. И мне удалось найти еще один чудесный проект — andy-5/wslgit
. Отличительной особенностью данного проекта оказалось то, что он также конвертирует пути в ответе команды. Это позволяет использовать его совместно с VS Code, а так же исправила те незначительные ошибки в работе с PhpStorm.
Для установки достаточно скачать .exe
со страницы релизов проекта на Github. В последней версии на момент написания статьи (0.7.0) появилась сборка для работы с локальными дисками, примонтированными к корню. Скачайте файл wslgit-mount-at-root.exe
, поместите его в директорию с другими алиасами и назовите git.exe
. Теперь вы можете указывать данный файл в настройках текстового редактора.
Вместо заключения
Спасибо, что дочитали до конца. Надеюсь, понравилась данная серия постов.