diff --git a/src/Module.ts b/src/Module.ts index 3cd879cc055..16201abe93a 100644 --- a/src/Module.ts +++ b/src/Module.ts @@ -621,6 +621,7 @@ export default class Module { includeAllInBundle(): void { this.ast!.include(createInclusionContext(), true); + this.includeAllExports(false); } isIncluded(): boolean { diff --git a/test/form/samples/no-treeshake-namespace-object/_config.js b/test/form/samples/no-treeshake-namespace-object/_config.js new file mode 100644 index 00000000000..dc6136f8ded --- /dev/null +++ b/test/form/samples/no-treeshake-namespace-object/_config.js @@ -0,0 +1,6 @@ +module.exports = { + description: 'generates namespace objects when not tree-shaking', + options: { + treeshake: false + } +}; diff --git a/test/form/samples/no-treeshake-namespace-object/_expected.js b/test/form/samples/no-treeshake-namespace-object/_expected.js new file mode 100644 index 00000000000..cddaf554c82 --- /dev/null +++ b/test/form/samples/no-treeshake-namespace-object/_expected.js @@ -0,0 +1,11 @@ +function foo() {} + +var namespace = /*#__PURE__*/Object.freeze({ + __proto__: null, + foo: foo +}); + +const a = 1; +const b = 2; + +export { a, b, namespace as ns1, namespace as ns2 }; diff --git a/test/form/samples/no-treeshake-namespace-object/main.js b/test/form/samples/no-treeshake-namespace-object/main.js new file mode 100644 index 00000000000..5e4ca4d7427 --- /dev/null +++ b/test/form/samples/no-treeshake-namespace-object/main.js @@ -0,0 +1,8 @@ +import * as ns1 from './namespace'; + +export { ns1 }; + +export * as ns2 from './namespace'; + +export const a = 1; +export const b = 2; diff --git a/test/form/samples/no-treeshake-namespace-object/namespace.js b/test/form/samples/no-treeshake-namespace-object/namespace.js new file mode 100644 index 00000000000..f99d4277774 --- /dev/null +++ b/test/form/samples/no-treeshake-namespace-object/namespace.js @@ -0,0 +1 @@ +export function foo() {}