-
Bug
-
Resolution: Won't Fix
-
Major
-
-
Blue Ocean 1.2-beta2
Bundled are generated in a sub optimal way. One side effect is there could be multiple submodules of popular libraries appearing in different bundles.
- depends on
-
JENKINS-39657 Runtime JavaScript bundle analyser for Chrome Dev Tools
-
- Resolved
-
- is related to
-
JENKINS-38013 Profile and minifi blue ocean loading
-
- Closed
-
- relates to
-
JENKINS-47673 Current BO Master forces third party bo based plugins to use the exact versions of npm deps
-
- Closed
-
[JENKINS-39646] Properly generate bundles for packages that have multiple top-level modules
Epic Link | New: JENKINS-37957 [ 174099 ] |
Link |
New:
This issue is related to |
Link |
New:
This issue depends on |
Description |
Original:
We fixed some bundling issues last week ... non bootstrap bundles (dashboard etc) are now back down to somewhat reasonable sizes (they were at ~ 2Mb in some cases), but the blueocean.js bootstrp bundle is still at about 3Mb because we have the kitchen sink thrown in there. If it's going to be that huge (something we did not know earlier in the game), then we need to tweak how we are doing the bundling. I've been working on this off-and-on over the last week or two. I've made progress on it (blueocean.js now at abou 0.6Mb), but have run into other react pita issues now (react == "pain" for me :) ). I've not been able to figure that issue out and I think I'm going to need to build some more tooling for myself in order to do that (will also hopefully help when we hit the next react/other bundling issue). So, parking this issue for now and we will come back to it later. Relevant WIP: * https://github.com/tfennelly/jenkins-js-builder/tree/all-extern-bundles * https://github.com/tfennelly/blueocean-plugin/tree/all-extern-bundles |
New:
We fixed some bundling issues last week ... non bootstrap bundles (dashboard etc) are now back down to somewhat reasonable sizes (they were at ~ 2Mb in some cases), but the blueocean.js bootstrp bundle is still at about 3Mb because we have the kitchen sink thrown in there. If it's going to be that huge (something we did not know earlier in the game), then we need to tweak how we are doing the bundling. I've been working on this off-and-on over the last week or two. I've made progress on it (blueocean.js now at abou 0.6Mb), but have run into other react pita issues now (react == "pain" for me :) ). I've not been able to figure that issue out and I think I'm going to need to build some more tooling for myself in order to do that (will also hopefully help when we hit the next react/other bundling issue) - see So, parking this issue for now and we will come back to it later. Relevant WIP: * https://github.com/tfennelly/jenkins-js-builder/tree/all-extern-bundles * https://github.com/tfennelly/blueocean-plugin/tree/all-extern-bundles |
Component/s | New: js-builder [ 21132 ] | |
Component/s | New: js-modules [ 21133 ] |
Summary | Original: Extract more dependencies out into their own JS bundles | New: Properly generate bundles for packages that have multiple top-level modules |
Issue Type | Original: Task [ 3 ] | New: Bug [ 1 ] |
Epic Link | Original: JENKINS-37957 [ 174099 ] | New: JENKINS-35749 [ 171790 ] |
Priority | Original: Major [ 3 ] | New: Blocker [ 1 ] |
Description |
Original:
We fixed some bundling issues last week ... non bootstrap bundles (dashboard etc) are now back down to somewhat reasonable sizes (they were at ~ 2Mb in some cases), but the blueocean.js bootstrp bundle is still at about 3Mb because we have the kitchen sink thrown in there. If it's going to be that huge (something we did not know earlier in the game), then we need to tweak how we are doing the bundling. I've been working on this off-and-on over the last week or two. I've made progress on it (blueocean.js now at abou 0.6Mb), but have run into other react pita issues now (react == "pain" for me :) ). I've not been able to figure that issue out and I think I'm going to need to build some more tooling for myself in order to do that (will also hopefully help when we hit the next react/other bundling issue) - see So, parking this issue for now and we will come back to it later. Relevant WIP: * https://github.com/tfennelly/jenkins-js-builder/tree/all-extern-bundles * https://github.com/tfennelly/blueocean-plugin/tree/all-extern-bundles |
New:
js-modules, js-builder etc were written based on some assumptions (pre Blue Ocean). The main one that's relevant to this task was the assumption that dependency packages are always accessed via a single top-level/entry/main module and that that modules would be the bundle entry-point module. Of course in reality that's not how some NPM packages are created. Some of them contain multiple top-level/entry modules. React is the one most relevant to Blue Ocean ... it has lots of top level modules, so much so that lots of secondary/child NPM packages have sprung up in the react eco system that do nothing more than define an NPM "main" module entry point for a module inside the react package e.g. some of the ones we use in Blue Ocean ... "react-dom", "react-addons-css-transition-group", "react-addons-test-utils". We need to change how our bundling works so that we can properly accommodate this reality, generating dependency bundles are guaranteed to contain all the package modules needed so that all entry-modules are covered/supported by the bundle. Likewise, when generating bundles that depend on these packages, we need to make sure that the externalized/shared bundle is always wired in properly and that no external dep modules "leak" in through the back door. I've been working on this off-and-on over the last week or two. I've made progress on it (blueocean.js now at abou 0.6Mb), but have run into other react pita issues now (react == "pain" for me :) ). I've not been able to figure that issue out and I think I'm going to need to build some more tooling for myself in order to do that (will also hopefully help when we hit the next react/other bundling issue) - see So, parking this issue for now and we will come back to it later. Relevant WIP: * https://github.com/tfennelly/jenkins-js-builder/tree/all-extern-bundles * https://github.com/tfennelly/blueocean-plugin/tree/all-extern-bundles |