diff --git a/src/compiler/config/test/validate-config.spec.ts b/src/compiler/config/test/validate-config.spec.ts index 6a99b384bca..f60f233b18f 100644 --- a/src/compiler/config/test/validate-config.spec.ts +++ b/src/compiler/config/test/validate-config.spec.ts @@ -401,4 +401,25 @@ describe('validation', () => { expect(config.sourceMap).toBe(false); }); }); + + describe('buildDist', () => { + it.each([true, false])('should set the field based on the config flag (%p)', (flag) => { + userConfig.flags = { esm: flag }; + const { config } = validateConfig(userConfig); + expect(config.buildDist).toBe(flag); + }); + + it.each([true, false])('should fallback to !devMode', (devMode) => { + userConfig.devMode = devMode; + const { config } = validateConfig(userConfig); + expect(config.buildDist).toBe(!devMode); + }); + + it.each([true, false])('should fallback to buildEs5 in devMode', (buildEs5) => { + userConfig.devMode = true; + userConfig.buildEs5 = buildEs5; + const { config } = validateConfig(userConfig); + expect(config.buildDist).toBe(config.buildEs5); + }); + }); }); diff --git a/src/compiler/config/validate-config.ts b/src/compiler/config/validate-config.ts index 65920ace748..4631e5ccd47 100644 --- a/src/compiler/config/validate-config.ts +++ b/src/compiler/config/validate-config.ts @@ -61,7 +61,7 @@ export const validateConfig = ( setBooleanConfig(config, 'sourceMap', null, typeof config.sourceMap === 'undefined' ? false : config.sourceMap); setBooleanConfig(config, 'watch', 'watch', false); setBooleanConfig(config, 'buildDocs', 'docs', !config.devMode); - setBooleanConfig(config, 'buildDist', null, !config.devMode || config.buildEs5); + setBooleanConfig(config, 'buildDist', 'esm', !config.devMode || config.buildEs5); setBooleanConfig(config, 'profile', 'profile', config.devMode); setBooleanConfig(config, 'writeLog', 'log', false); setBooleanConfig(config, 'buildAppCore', null, true); diff --git a/src/declarations/stencil-public-compiler.ts b/src/declarations/stencil-public-compiler.ts index 18c0672471e..ab369f29016 100644 --- a/src/declarations/stencil-public-compiler.ts +++ b/src/declarations/stencil-public-compiler.ts @@ -568,6 +568,7 @@ export interface ConfigFlags { e2e?: boolean; emulate?: string; es5?: boolean; + esm?: boolean; headless?: boolean; help?: boolean; log?: boolean;