Проблема почти не привлекает внимания, поэтому я решил исправить сам. Я все еще ищу лучшее / собственное решение, но вот обходной путь, который я придумал.
Позволяет пользователям WSL запускать любые Команды CMD в системе хоста Windows из подсистемы linux.
Требования
- Windows 10
- WSL
- Node.js
- NPM
Узел и NPM должны быть установлены как в подсистеме linux, так и в хост-системе Windows.
Установить
wsl-link должен быть установлен отдельно в подсистеме и на Windows хосте
В подсистеме linux:
npm i wsl-link -g
На Windows хосте:
npm i wsl-link -g
Windows Запуск
Для запуска сценария при запуске на windows Я использую PM2 с прилагаемым сценарием демона.
Установить pm2 и pm2- windows -startup на Windows host:
npm i pm2 pm2-windows-startup -g
Установить pm2-startup:
pm2-startup install
Запустить демон wsl-link pm2:
wsl-link-pm2
Сохранить список процессов pm2
pm2 save
Теперь вы можете подтвердить t если приложение wsl-link работает, с:
pm2 status
Использование
На Windows стартовом сервере (если не используется настройка запуска с pm2 ):
wsl-link
Использовать в подсистеме linux (npm -v будет запущено на хосте Windows):
wsl-link npm -v
Case
On подсистема linux настроить проект (или использовать существующий):
mkdir wsl-link-test
cd wsl-link-test
touch app.js
npm init
app. js:
const Nightmare = require('nightmare');
(async () => {
await Nightmare({
show: true
})
.goto('https://google.com');
})();
Установить Windows версию Nightmare. js и запустить это на Windows.
wsl-link npm i nightmare --save
wsl-link node app
Вы должны увидеть, что браузер Electron открыт на вашем Windows хосте.