Перейти к содержимому

Как запустить сервер разработки npm в фоне в Windows без окна терминала

Сервер разработки, запущенный командой npm run dev, работает в терминале, из которого он был запущен, поэтому закрытие этого окна его завершает. Простой способ Windows удержать его - скрытый процесс, например Start-Process npm.cmd -ArgumentList "run","dev" -WindowStyle Hidden в PowerShell, но тогда у вас нет вывода для чтения, а чтобы остановить сервер, приходится искать нужный node.exe (см. Поиск и завершение процесса, занимающего порт).

Moonpool запускает команду во встроенной вкладке терминала внутри главного окна, поэтому отдельное окно консоли держать открытым не нужно. Скройте главное окно в трей, и сервер продолжит работать. Добавьте приложение один раз:

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
}

Нажмите кнопку Запустить у приложения. Индикатор состояния становится сплошным, когда port отвечает, а браузер открывает url благодаря openBrowser. Щёлкните по названию приложения, чтобы читать его вывод в его вкладке. Кнопка Остановить завершает терминал и всё, что он запустил, и освобождает порт (killMode со значением port - значение по умолчанию для web).

Как оставить его работающим при закрытии окна

Заголовок раздела «Как оставить его работающим при закрытии окна»

По умолчанию кнопка закрытия завершает работу Moonpool, а в Windows завершение работы останавливает все запущенные им приложения. Включите Закрывать в трей в настройках, и закрытие окна будет только скрывать его. Вернуть окно можно значком в трее (или пунктом Показать Moonpool). Подробности в разделе Трей, закрытие и сворачивание.

Moonpool определяет состояние «работает» по port. Vite переходит на следующий свободный порт, если его порт занят, и тогда Moonpool следит не за тем портом. Передайте --strictPort, чтобы Vite вместо этого завершался, и задайте port соответственно:

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

Если порт уже занят, см. Исправление EADDRINUSE и «Port 5173 is in use».

Moonpool: бесплатное программное обеспечение от FasterDB