@ -10,7 +10,7 @@ import { rimraf } from 'rimraf'
import type { BuildOptions , Rollup } from 'vite'
import type { BuildOptions , Rollup } from 'vite'
import { resolveConfig , type SiteConfig } from '../config'
import { resolveConfig , type SiteConfig } from '../config'
import { clearCache } from '../markdownToVue'
import { clearCache } from '../markdownToVue'
import { slash , type HeadConfig } from '../shared'
import { slash , type Awaitable, type HeadConfig } from '../shared'
import { deserializeFunctions , serializeFunctions } from '../utils/fnSerialize'
import { deserializeFunctions , serializeFunctions } from '../utils/fnSerialize'
import { task } from '../utils/task'
import { task } from '../utils/task'
import { bundle } from './bundle'
import { bundle } from './bundle'
@ -21,12 +21,20 @@ const require = createRequire(import.meta.url)
export async function build (
export async function build (
root? : string ,
root? : string ,
buildOptions : BuildOptions & { base? : string ; mpa? : string } = { }
buildOptions : BuildOptions & {
base? : string
mpa? : string
onAfterConfigResolve ? : ( siteConfig : SiteConfig ) = > Awaitable < void >
} = { }
) {
) {
const start = Date . now ( )
const start = Date . now ( )
process . env . NODE_ENV = 'production'
process . env . NODE_ENV = 'production'
const siteConfig = await resolveConfig ( root , 'build' , 'production' )
const siteConfig = await resolveConfig ( root , 'build' , 'production' )
await buildOptions . onAfterConfigResolve ? . ( siteConfig )
delete buildOptions . onAfterConfigResolve
const unlinkVue = linkVue ( )
const unlinkVue = linkVue ( )
if ( buildOptions . base ) {
if ( buildOptions . base ) {