From e7b7bb5cc2a60996bca2a8dc4a2b8fb78d0c2677 Mon Sep 17 00:00:00 2001
From: bluwy <bjornlu.dev@gmail.com>
Date: Thu, 24 Oct 2024 14:37:14 +0800
Subject: [PATCH] fix(preview): set resolvedUrls null after close

---
 docs/guide/api-javascript.md           | 8 ++++----
 packages/vite/src/node/preview.ts      | 5 +++--
 packages/vite/src/node/server/index.ts | 4 ++--
 3 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/docs/guide/api-javascript.md b/docs/guide/api-javascript.md
index 5a883c75e274cf..c0a7a3d508fa33 100644
--- a/docs/guide/api-javascript.md
+++ b/docs/guide/api-javascript.md
@@ -128,8 +128,8 @@ interface ViteDevServer {
    */
   moduleGraph: ModuleGraph
   /**
-   * The resolved urls Vite prints on the CLI. null in middleware mode or
-   * before `server.listen` is called.
+   * The resolved urls Vite prints on the CLI (URL-encoded). Returns `null`
+   * in middleware mode or if the server is not listening on any port.
    */
   resolvedUrls: ResolvedServerUrls | null
   /**
@@ -274,8 +274,8 @@ interface PreviewServer {
    */
   httpServer: http.Server
   /**
-   * The resolved urls Vite prints on the CLI.
-   * null before server is listening.
+   * The resolved urls Vite prints on the CLI (URL-encoded). Returns `null`
+   * if the server is not listening on any port.
    */
   resolvedUrls: ResolvedServerUrls | null
   /**
diff --git a/packages/vite/src/node/preview.ts b/packages/vite/src/node/preview.ts
index 8ea36ab2df2369..a341f5948b72ec 100644
--- a/packages/vite/src/node/preview.ts
+++ b/packages/vite/src/node/preview.ts
@@ -84,8 +84,8 @@ export interface PreviewServer {
    */
   httpServer: HttpServer
   /**
-   * The resolved urls Vite prints on the CLI.
-   * null before server is listening.
+   * The resolved urls Vite prints on the CLI (URL-encoded). Returns `null`
+   * if the server is not listening on any port.
    */
   resolvedUrls: ResolvedServerUrls | null
   /**
@@ -154,6 +154,7 @@ export async function preview(
     async close() {
       teardownSIGTERMListener(closeServerAndExit)
       await closeHttpServer()
+      server.resolvedUrls = null
     },
     resolvedUrls: null,
     printUrls() {
diff --git a/packages/vite/src/node/server/index.ts b/packages/vite/src/node/server/index.ts
index ab15ac5a4e4b0e..1ecc1e1743f91d 100644
--- a/packages/vite/src/node/server/index.ts
+++ b/packages/vite/src/node/server/index.ts
@@ -284,8 +284,8 @@ export interface ViteDevServer {
    */
   moduleGraph: ModuleGraph
   /**
-   * The resolved urls Vite prints on the CLI. null in middleware mode or
-   * before `server.listen` is called.
+   * The resolved urls Vite prints on the CLI (URL-encoded). Returns `null`
+   * in middleware mode or if the server is not listening on any port.
    */
   resolvedUrls: ResolvedServerUrls | null
   /**