diff --git a/packages/vite/src/node/cli.ts b/packages/vite/src/node/cli.ts index 2432488ad215a9..36e020500ba823 100644 --- a/packages/vite/src/node/cli.ts +++ b/packages/vite/src/node/cli.ts @@ -186,12 +186,17 @@ cli cli .command('preview [root]') + .option('--host [host]', `[string] specify hostname`) .option('--port ', `[number] specify port`) .option('--open [path]', `[boolean | string] open browser on startup`) .action( async ( root: string, - options: { port?: number; open?: boolean | string } & GlobalCLIOptions + options: { + host?: string + port?: number + open?: boolean | string + } & GlobalCLIOptions ) => { try { const config = await resolveConfig( @@ -207,7 +212,7 @@ cli 'serve', 'development' ) - await preview(config, options.port) + await preview(config, { host: options.host, port: options.port }) } catch (e) { createLogger(options.logLevel).error( chalk.red(`error when starting preview server:\n${e.stack}`) diff --git a/packages/vite/src/node/preview.ts b/packages/vite/src/node/preview.ts index f06e64d22c73c0..bbff2769be4866 100644 --- a/packages/vite/src/node/preview.ts +++ b/packages/vite/src/node/preview.ts @@ -14,7 +14,7 @@ import { resolveHostname } from './utils' export async function preview( config: ResolvedConfig, - port = 5000 + serverOptions: { host?: string; port?: number } ): Promise { const app = connect() as Connect.Server const httpServer = await resolveHttpServer( @@ -46,7 +46,8 @@ export async function preview( ) const options = config.server - const hostname = resolveHostname(options.host) + const hostname = resolveHostname(serverOptions.host ?? options.host) + const port = serverOptions.port ?? 5000 const protocol = options.https ? 'https' : 'http' const logger = config.logger const base = config.base