diff --git a/bin/src/run/loadConfigFile.ts b/bin/src/run/loadConfigFile.ts index 8144b6dfd4c..53d1adbc1a6 100644 --- a/bin/src/run/loadConfigFile.ts +++ b/bin/src/run/loadConfigFile.ts @@ -10,6 +10,10 @@ interface NodeModuleWithCompile extends NodeModule { _compile(code: string, filename: string): any; } +function interopDefault(ex: T): T { + return ex && typeof ex === 'object' && 'default' in ex ? (ex as any).default : ex; +} + export default function loadConfigFile( configFile: string, commandOptions: any = {} @@ -33,6 +37,7 @@ export default function loadConfigFile( } return bundle.generate({ + exports: 'named', format: 'cjs' }); }) @@ -49,7 +54,7 @@ export default function loadConfigFile( delete require.cache[configFile]; - return Promise.resolve(require(configFile)) + return Promise.resolve(interopDefault(require(configFile))) .then(configFileContent => { if (typeof configFileContent === 'function') { return configFileContent(commandOptions); diff --git a/test/cli/samples/config-es6/rollup.config.js b/test/cli/samples/config-es6/rollup.config.js index 22bbdf2e99b..036e93d68b9 100644 --- a/test/cli/samples/config-es6/rollup.config.js +++ b/test/cli/samples/config-es6/rollup.config.js @@ -1,5 +1,7 @@ import replace from 'rollup-plugin-replace'; +export const ignoresNonDefaultExports = true + export default { input: 'main.js', output: {