Skip to content

Commit 5003434

Browse files
authored
fix(preview): use host url to open browser (#19836)
1 parent bf9728e commit 5003434

File tree

3 files changed

+18
-10
lines changed

3 files changed

+18
-10
lines changed

packages/vite/src/node/preview.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import { indexHtmlMiddleware } from './server/middlewares/indexHtml'
2525
import { notFoundMiddleware } from './server/middlewares/notFound'
2626
import { proxyMiddleware } from './server/middlewares/proxy'
2727
import {
28+
getServerUrlByHost,
2829
resolveHostname,
2930
resolveServerUrls,
3031
setupSIGTERMListener,
@@ -276,7 +277,7 @@ export async function preview(
276277
)
277278

278279
if (options.open) {
279-
const url = server.resolvedUrls.local[0] ?? server.resolvedUrls.network[0]
280+
const url = getServerUrlByHost(server, options.host)
280281
if (url) {
281282
const path =
282283
typeof options.open === 'string' ? new URL(options.open, url).href : url

packages/vite/src/node/server/index.ts

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import type { InlineConfig, ResolvedConfig } from '../config'
2626
import { resolveConfig } from '../config'
2727
import {
2828
diffDnsOrderChange,
29+
getServerUrlByHost,
2930
isInNodeModules,
3031
isObject,
3132
isParentDirectory,
@@ -659,15 +660,7 @@ export async function _createServer(
659660
},
660661
openBrowser() {
661662
const options = server.config.server
662-
const host = options.host
663-
let url: string | undefined
664-
if (typeof host === 'string') {
665-
url = [
666-
...(server.resolvedUrls?.local ?? []),
667-
...(server.resolvedUrls?.network ?? []),
668-
].find((url) => url.includes(host))
669-
}
670-
url ??= server.resolvedUrls?.local[0] ?? server.resolvedUrls?.network[0]
663+
const url = getServerUrlByHost(server, options.host)
671664
if (url) {
672665
const path =
673666
typeof options.open === 'string'

packages/vite/src/node/utils.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1656,3 +1656,17 @@ export const teardownSIGTERMListener = (
16561656
}
16571657
}
16581658
}
1659+
1660+
export function getServerUrlByHost(
1661+
server: PreviewServer | ViteDevServer,
1662+
host: CommonServerOptions['host'],
1663+
): string | undefined {
1664+
if (typeof host !== 'string') {
1665+
return server.resolvedUrls?.local[0] ?? server.resolvedUrls?.network[0]
1666+
}
1667+
1668+
return [
1669+
...(server.resolvedUrls?.local ?? []),
1670+
...(server.resolvedUrls?.network ?? []),
1671+
].find((url) => url.includes(host))
1672+
}

0 commit comments

Comments
 (0)