From 6c7ae3662c43001eac1b781f7bf8265519588923 Mon Sep 17 00:00:00 2001 From: "chenfan.0" Date: Tue, 3 Jan 2023 21:49:38 +0800 Subject: [PATCH] feat: check whether to build before preview --- packages/vite/src/node/preview.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/vite/src/node/preview.ts b/packages/vite/src/node/preview.ts index 4a5d66838bad94..8bdd86fa8589ca 100644 --- a/packages/vite/src/node/preview.ts +++ b/packages/vite/src/node/preview.ts @@ -1,4 +1,5 @@ import path from 'node:path' +import fs from 'node:fs' import type * as http from 'node:http' import sirv from 'sirv' import connect from 'connect' @@ -83,6 +84,14 @@ export async function preview( 'production', ) + const distDir = path.resolve(config.root, config.build.outDir) + const isAlreadyBuild = fs.existsSync(distDir) + if (!isAlreadyBuild) { + throw Error( + 'The outputDir cannot be found, please try again after building', + ) + } + const app = connect() as Connect.Server const httpServer = await resolveHttpServer( config.preview, @@ -115,7 +124,6 @@ export async function preview( config.base === './' || config.base === '' ? '/' : config.base // static assets - const distDir = path.resolve(config.root, config.build.outDir) const headers = config.preview.headers const assetServer = sirv(distDir, { etag: true,