From 146acb15130f096c9120f29dca511391ee9994f1 Mon Sep 17 00:00:00 2001 From: Manu MA Date: Tue, 8 Feb 2022 15:21:09 +0000 Subject: [PATCH] feat: add ssr.format to force esm output for ssr --- 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 7c7d1d18037174..279a05c1313045 100644 --- a/packages/vite/src/node/build.ts +++ b/packages/vite/src/node/build.ts @@ -367,6 +367,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( @@ -464,8 +465,8 @@ async function doBuild( 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, entryFileNames: ssr diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index f73f4fb8662d6b..cc0ace3ef3d708 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -221,6 +221,12 @@ export interface SSROptions { * Default: 'node' */ target?: SSRTarget + + /** + * Define the module format for the ssr build. + * Default: 'cjs' + */ + format?: 'es' | 'cjs' } export interface ResolveWorkerOptions {