コンテンツにスキップ

Windows でターミナルウィンドウなしに npm の開発サーバーをバックグラウンドで実行する

npm run dev で起動した開発サーバーは、起動したターミナルの中で動くため、そのウィンドウを閉じると終了します。Windows で動かし続ける素直な方法は、PowerShell の Start-Process npm.cmd -ArgumentList "run","dev" -WindowStyle Hidden のような非表示プロセスですが、その場合は読める出力がなく、停止するには正しい 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 が応答するとステータスの点が点灯し、openBrowser によってブラウザーが url を開きます。アプリの名前をクリックすると、専用のタブで出力を読めます。停止 を押すと、ターミナルとそこから起動されたものすべてが終了し、ポートが解放されます (web では killMode の既定が port です)。

ウィンドウを閉じても動かし続ける

Section titled “ウィンドウを閉じても動かし続ける”

既定では、閉じるボタンで 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