Skip to content

Commit

Permalink
Handle side-effects next to side-effect-free default exports in case …
Browse files Browse the repository at this point in the history
…the default export is reexported (#3602)
  • Loading branch information
lukastaegert committed May 28, 2020
1 parent ca0854e commit 41778fe
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 5 deletions.
9 changes: 6 additions & 3 deletions src/Module.ts
Expand Up @@ -330,7 +330,8 @@ export default class Module {
getDependenciesToBeIncluded(): Set<Module | ExternalModule> {
if (this.relevantDependencies) return this.relevantDependencies;
const relevantDependencies = new Set<Module | ExternalModule>();
const additionalSideEffectModules = new Set();
const additionalSideEffectModules = new Set<Module>();
const possibleDependencies = new Set(this.dependencies);
let dependencyVariables = this.imports;
if (
this.isEntryPoint ||
Expand All @@ -350,15 +351,17 @@ export default class Module {
variable = original;
for (const module of modules) {
additionalSideEffectModules.add(module);
possibleDependencies.add(module);
}
}
relevantDependencies.add(variable.module!);
}
if (this.options.treeshake) {
const possibleDependencies = new Set(this.dependencies);
for (const dependency of possibleDependencies) {
if (
!(dependency.moduleSideEffects || additionalSideEffectModules.has(dependency)) ||
!(
dependency.moduleSideEffects || additionalSideEffectModules.has(dependency as Module)
) ||
relevantDependencies.has(dependency)
) {
continue;
Expand Down
@@ -0,0 +1 @@
export { default as Menu } from './index';
3 changes: 1 addition & 2 deletions test/form/samples/side-effect-default-reexport/main.js
@@ -1,8 +1,7 @@
import DefaultExport from './default-export/index.js';
import { Menu as DefaultExport } from './default-export/reexport.js';
console.log('test-package-default-export', DefaultExport.Item);

import { Menu as NamedExport } from './named-export/index.js';
console.log('test-package-named-export', NamedExport.Item);

export { default } from './default-export2/index.js';

0 comments on commit 41778fe

Please sign in to comment.