From 8c0195ddf19798fe57f91a469433f69040a69706 Mon Sep 17 00:00:00 2001 From: Emil Persson Date: Fri, 7 Dec 2018 12:10:55 +0100 Subject: [PATCH 1/2] Attempt to fix #2340 --- packages/core/parcel-bundler/src/Bundle.js | 9 +++++++++ packages/core/parcel-bundler/src/Bundler.js | 2 ++ 2 files changed, 11 insertions(+) diff --git a/packages/core/parcel-bundler/src/Bundle.js b/packages/core/parcel-bundler/src/Bundle.js index e4dbf718776..3bd540f734b 100644 --- a/packages/core/parcel-bundler/src/Bundle.js +++ b/packages/core/parcel-bundler/src/Bundle.js @@ -89,6 +89,15 @@ class Bundle { return bundle; } + addChildBundle(bundle) { + this.childBundles.add(bundle); + } + + addSiblingBundle(bundle) { + this.addChildBundle(bundle); + this.siblingBundles.add(bundle); + } + get isEmpty() { return this.assets.size === 0; } diff --git a/packages/core/parcel-bundler/src/Bundler.js b/packages/core/parcel-bundler/src/Bundler.js index f82222bf88f..f94ccc28ca6 100644 --- a/packages/core/parcel-bundler/src/Bundler.js +++ b/packages/core/parcel-bundler/src/Bundler.js @@ -654,6 +654,7 @@ class Bundler extends EventEmitter { if ((dep && dep.dynamic) || !bundle.type) { // If the asset is already the entry asset of a bundle, don't create a duplicate. if (isEntryAsset) { + bundle.addChildBundle(asset.parentBundle); return; } @@ -665,6 +666,7 @@ class Bundler extends EventEmitter { ) { // If the asset is already the entry asset of a bundle, don't create a duplicate. if (isEntryAsset) { + bundle.addSiblingBundle(asset.parentBundle); return; } From 31f2221b6d9f58431383a36e7f65f5bff72641fd Mon Sep 17 00:00:00 2001 From: Emil Persson Date: Fri, 7 Dec 2018 12:29:31 +0100 Subject: [PATCH 2/2] Add integration test package, but without assertions --- .../index.css | 3 +++ .../index.html | 12 ++++++++++++ .../index.js | 1 + .../index2.html | 12 ++++++++++++ 4 files changed, 28 insertions(+) create mode 100644 packages/core/parcel-bundler/test/integration/multiple-html-entry-points-sharing-asset/index.css create mode 100644 packages/core/parcel-bundler/test/integration/multiple-html-entry-points-sharing-asset/index.html create mode 100644 packages/core/parcel-bundler/test/integration/multiple-html-entry-points-sharing-asset/index.js create mode 100644 packages/core/parcel-bundler/test/integration/multiple-html-entry-points-sharing-asset/index2.html diff --git a/packages/core/parcel-bundler/test/integration/multiple-html-entry-points-sharing-asset/index.css b/packages/core/parcel-bundler/test/integration/multiple-html-entry-points-sharing-asset/index.css new file mode 100644 index 00000000000..67ce83e4d09 --- /dev/null +++ b/packages/core/parcel-bundler/test/integration/multiple-html-entry-points-sharing-asset/index.css @@ -0,0 +1,3 @@ +body { + background: red; +} diff --git a/packages/core/parcel-bundler/test/integration/multiple-html-entry-points-sharing-asset/index.html b/packages/core/parcel-bundler/test/integration/multiple-html-entry-points-sharing-asset/index.html new file mode 100644 index 00000000000..8ea317aa76f --- /dev/null +++ b/packages/core/parcel-bundler/test/integration/multiple-html-entry-points-sharing-asset/index.html @@ -0,0 +1,12 @@ + + + + + + + + + +

Index.html

+ + diff --git a/packages/core/parcel-bundler/test/integration/multiple-html-entry-points-sharing-asset/index.js b/packages/core/parcel-bundler/test/integration/multiple-html-entry-points-sharing-asset/index.js new file mode 100644 index 00000000000..6a9a4b13285 --- /dev/null +++ b/packages/core/parcel-bundler/test/integration/multiple-html-entry-points-sharing-asset/index.js @@ -0,0 +1 @@ +import './index.css'; diff --git a/packages/core/parcel-bundler/test/integration/multiple-html-entry-points-sharing-asset/index2.html b/packages/core/parcel-bundler/test/integration/multiple-html-entry-points-sharing-asset/index2.html new file mode 100644 index 00000000000..d15ba56a4c4 --- /dev/null +++ b/packages/core/parcel-bundler/test/integration/multiple-html-entry-points-sharing-asset/index2.html @@ -0,0 +1,12 @@ + + + + + + + + + +

Index2.html

+ +