Как запустить сервер разработки npm в фоне в Windows без окна терминала
Сервер разработки, запущенный командой npm run dev, работает в терминале, из которого он был
запущен, поэтому закрытие этого окна его завершает. Простой способ Windows удержать его - скрытый
процесс, например Start-Process npm.cmd -ArgumentList "run","dev" -WindowStyle Hidden в
PowerShell, но тогда у вас нет вывода для чтения, а чтобы остановить сервер, приходится искать
нужный node.exe (см.
Поиск и завершение процесса, занимающего порт).
Способ Moonpool
Заголовок раздела «Способ Moonpool»Moonpool запускает команду во встроенной вкладке терминала внутри главного окна, поэтому отдельное окно консоли держать открытым не нужно. Скройте главное окно в трей, и сервер продолжит работать. Добавьте приложение один раз:
{ "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 соответственно:
npm run dev -- --port 5173 --strictPortЕсли порт уже занят, см. Исправление EADDRINUSE и «Port 5173 is in use».
Ограничения
Заголовок раздела «Ограничения»- Moonpool не перезапускает сервер, который аварийно завершился. Он показывает приложение как
остановленное, а во вкладке выводится
[process exited]. - Moonpool сам не запускается при входе в Windows. См. Автоматический запуск скрипта или сервера разработки при входе в Windows.
См. также
Заголовок раздела «См. также»- Поля приложения:
port,openBrowser,killMode. - Типы приложений: как определяется состояние «работает» для
web. - Остановка и перезапуск
- Примеры
Moonpool: бесплатное программное обеспечение от FasterDB