-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Description
🐛 bug report
Hi together,
I am switching from Parcel 1 to Parcel 2 with a larger project. With Parcel 1 there are no problems. Parcel 2 shows the following error message: Bundle group cannot have more than one entry bundle of the same type
.
My entrypoints are assets/src/*/*.js
. There are 3 folders in src
: mobile
, desktop
and shared
. When I try to import the same file from assets/src/shared
folder in assets/src/desktop/aaa.js
as well as in assets/src/mobile/bbb.js
, then the error occurs.
I saw the following code part:
(0, _assert().default)(entryBundlesOfType.length === 1, // Otherwise, we'd end up naming two bundles the same thing.
'Bundle group cannot have more than one entry bundle of the same type');
which aborts the bundle. Why? And why does this work in parcel 1 without any problems? What can I do?
🎛 Configuration (.babelrc, package.json, cli command)
"scripts": {
"start": "npx parcel watch assets/src/*/*.js --public-url ../ --no-hmr",
"build": "npx parcel build assets/src/*/*.js --no-source-maps --public-url ../"
}
There is no difference if I use the --dist-dir
cli option or the target
in package.json
.
🤔 Expected Behavior
The bundle should be created without any error messages. The files which were shared between desktop and mobile entrypoints should be in both entry output files. Parcel 1 does exactly what I expected.
😯 Current Behavior
The bundle aborts with an error message as follows:
AssertionError [ERR_ASSERTION]: Bundle group cannot have more than one entry bundle of the same type
at Object.name (C:\mf\node_modules\@parcel\namer-default\lib\DefaultNamer.js:94:29)
at BundlerRunner.nameBundle (C:\mf\node_modules\@parcel\core\lib\requests\BundleGraphRequest.js:494:39)
at C:\mf\node_modules\@parcel\core\lib\requests\BundleGraphRequest.js:470:50
at Array.map (<anonymous>)
at BundlerRunner.nameBundles (C:\mf\node_modules\@parcel\core\lib\requests\BundleGraphRequest.js:470:31)
at runMicrotasks (<anonymous>)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at async BundlerRunner.bundle (C:\mf\node_modules\@parcel\core\lib\requests\BundleGraphRequest.js:434:5)
at async RequestTracker.runRequest (C:\mf\node_modules\@parcel\core\lib\RequestTracker.js:694:20)
at async Parcel._build (C:\mf\node_modules\@parcel\core\lib\Parcel.js:661:25).
🔦 Context
I try to share some modules between desktop and mobile (different) entrypoints. I have much entrypoints which are sharing some modules.
💻 Code Sample
assets/src/desktop/main.js
import '../shared/components/autologin';
assets/src/mobile/main.js
import '../shared/components/autologin';
assets/src/shared/components/autologin.js
// some code
🌍 Your Environment
Software | Version(s) |
---|---|
Parcel | 2.0.0-nightly.674 |
npm/Yarn | 6.14.8 (npm) |
Operating System | Windows 10 Pro (20H2) |