From 337b1979c2f0190e9484733fb2c7fb99353474c2 Mon Sep 17 00:00:00 2001 From: Manu MA Date: Sun, 29 May 2022 14:10:37 +0200 Subject: [PATCH] feat: add ssr.format to force esm output for ssr (#6812) --- packages/vite/src/node/build.ts | 5 +++-- packages/vite/src/node/config.ts | 6 ++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/vite/src/node/build.ts b/packages/vite/src/node/build.ts index 1d48c7e5c1abf7..891c8434c03084 100644 --- a/packages/vite/src/node/build.ts +++ b/packages/vite/src/node/build.ts @@ -342,6 +342,7 @@ async function doBuild( const config = await resolveConfig(inlineConfig, 'build', 'production') const options = config.build const ssr = !!options.ssr + const esm = config.ssr?.format === 'es' || !ssr const libOptions = options.lib config.logger.info( @@ -433,8 +434,8 @@ async function doBuild( const buildOutputOptions = (output: OutputOptions = {}): OutputOptions => { return { dir: outDir, - format: ssr ? 'cjs' : 'es', - exports: ssr ? 'named' : 'auto', + format: esm ? 'es' : 'cjs', + exports: esm ? 'auto' : 'named', sourcemap: options.sourcemap, name: libOptions ? libOptions.name : undefined, generatedCode: 'es2015', diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index 8df48214527946..3d019fa6f4ac02 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -239,6 +239,12 @@ export interface SSROptions { * Default: 'node' */ target?: SSRTarget + + /** + * Define the module format for the ssr build. + * Default: 'cjs' + */ + format?: 'es' | 'cjs' } export interface ResolveWorkerOptions {