diff --git a/src/build/rolldown/prod.ts b/src/build/rolldown/prod.ts index b241f8bbec..234248eb9d 100644 --- a/src/build/rolldown/prod.ts +++ b/src/build/rolldown/prod.ts @@ -48,10 +48,12 @@ export async function buildProduction(nitro: Nitro, config: RolldownOptions) { const rewriteRelativePaths = (input: string) => { return input.replace(/([\s:])\.\/(\S*)/g, `$1${rOutput}/$2`); }; - nitro.logger.success("You can preview this build using `npx nitro preview`"); + const previewCommand = nitro.options.framework.previewCommand || "npx nitro preview"; + nitro.logger.success(`You can preview this build using \`${previewCommand}\``); if (buildInfo.commands!.deploy) { + const deployCommand = nitro.options.framework.deployCommand || "npx nitro deploy --prebuilt"; nitro.logger.success( - rewriteRelativePaths("You can deploy this build using `npx nitro deploy --prebuilt`") + rewriteRelativePaths(`You can deploy this build using \`${deployCommand}\``) ); } } diff --git a/src/build/vite/prod.ts b/src/build/vite/prod.ts index 3c20ebc758..53618a8a90 100644 --- a/src/build/vite/prod.ts +++ b/src/build/vite/prod.ts @@ -120,9 +120,11 @@ export async function buildEnvironments(ctx: NitroPluginContext, builder: ViteBu // Show deploy and preview commands if (!isTest && !isCI) console.log(); - nitro.logger.success("You can preview this build using `npx vite preview`"); + const previewCommand = nitro.options.framework.previewCommand || "npx vite preview"; + nitro.logger.success(`You can preview this build using \`${previewCommand}\``); if (nitro.options.commands.deploy) { - nitro.logger.success("You can deploy this build using `npx nitro deploy --prebuilt`"); + const deployCommand = nitro.options.framework.deployCommand || "npx nitro deploy --prebuilt"; + nitro.logger.success(`You can deploy this build using \`${deployCommand}\``); } } diff --git a/src/types/nitro.ts b/src/types/nitro.ts index 5392726cb7..dbf6be5bd8 100644 --- a/src/types/nitro.ts +++ b/src/types/nitro.ts @@ -69,6 +69,22 @@ export type NitroTypes = { export interface NitroFrameworkInfo { name?: "nitro" | (string & {}); version?: string; + /** + * Command shown in build output as the suggested preview command. + * + * Display-only: Nitro never executes this. Use this when the framework + * wraps `nitro preview` with its own CLI (e.g. `npx nuxt preview`). + * Defaults to `npx nitro preview`. + */ + previewCommand?: string; + /** + * Command shown in build output as the suggested deploy command. + * + * Display-only: Nitro never executes this. Use this when the framework + * wraps `nitro deploy` with its own CLI (e.g. `npx nuxt deploy`). + * Defaults to `npx nitro deploy --prebuilt`. + */ + deployCommand?: string; } /**