Przejdź do głównej zawartości

Uruchamianie serwera deweloperskiego npm w tle w systemie Windows bez okna terminala

Serwer deweloperski uruchomiony poleceniem npm run dev działa w terminalu, który go uruchomił, więc zamknięcie tego okna go kończy. Zwykły sposób w systemie Windows na utrzymanie go to proces ukryty, na przykład Start-Process npm.cmd -ArgumentList "run","dev" -WindowStyle Hidden w PowerShell, ale wtedy nie ma wyjścia do przeczytania, a zatrzymanie go oznacza szukanie właściwego node.exe (zob. Znajdowanie i kończenie procesu używającego portu).

Moonpool uruchamia polecenie we własnej wbudowanej karcie terminala w oknie huba, więc nie ma osobnego okna konsoli, które trzeba trzymać otwarte. Po ukryciu okna huba w zasobniku serwer nadal działa. Aplikację dodaje się raz:

apps.json
{
"id": "site",
"name": "Site",
"group": "Web apps",
"type": "web",
"cwd": "C:\\code\\site",
"command": "npm run dev",
"port": 5173,
"url": "http://localhost:5173",
"openBrowser": true
}

Należy kliknąć kontrolkę Uruchom przy aplikacji. Kropka stanu staje się pełna, gdy port zacznie odpowiadać, a przeglądarka otwiera url dzięki openBrowser. Kliknięcie nazwy aplikacji pokazuje jej wyjście w jej własnej karcie. Zatrzymaj kończy terminal i wszystko, co uruchomił, oraz zwalnia port (killMode port jest domyślny dla web).

Domyślnie przycisk zamknięcia kończy Moonpool, a w systemie Windows zakończenie programu zatrzymuje każdą uruchomioną przez niego aplikację. Włączenie Zamykanie do zasobnika w Ustawieniach sprawia, że zamknięcie okna tylko je ukrywa. Ikona w zasobniku (lub Pokaż Moonpool) przywraca okno. Szczegóły są w Zasobnik, zamykanie i minimalizowanie.

Moonpool ustala stan działania na podstawie port. Vite przechodzi na następny wolny port, gdy jego port jest zajęty, co sprawiłoby, że Moonpool obserwowałby zły port. Należy przekazać --strictPort, aby Vite zakończył działanie, i ustawić port odpowiednio:

command
npm run dev -- --port 5173 --strictPort

Jeśli port jest już zajęty, zob. Naprawa EADDRINUSE i „Port 5173 is in use”.

Moonpool to darmowe oprogramowanie od FasterDB