Bundle-Visualizer Question - I get two bundles with nearly the same stuff, but why? No dynamic imports used yet


#1

Hi! :smiley:

I want to clean up the kinda-big Meteor project of ours.

Note: I’m not using dynamic imports (yet).

I thought to use the bundle-visualizer to see which packages can be removed without too much pain.

Here’s a screenshot of the visualizer:

As I’m looking through the packages listed, I can see that I have 2 bundles (named bundle (1) and bundle (2)) when I hover the central grey rings. (Note that both half-circles are almost mirrored counterparts).

Whilst browsing the package dependencies and taking notes on what to remove, after i’m finished with the first half, I’m starting to check out the second half, and to my surprise - it’s the same packages all over. Almost.

There is a slight size difference in both bundles, bundle (1) is 4,42 Mb and bundle(2) is 4,53 Mb so there seem to be some minor (?) differences. But most packages seem to be the same.

My questions now are:

  • Does this matter? Is this stuff really built and / or transmitted twice? Even if it’s only being built twice, can we maybe cut down on our build times by changing this to one bundle?
  • What do these two bundles mean? When / how are they loaded? Where can I see them? (I can see only see the big all-stuff-in-one-meteor-app-my-name-is-actually-a-hash.js - file being downloaded, i can’t seem to see any dynamic imports in the method calls)

Thanks in advance, best wishes fellow meteorites

Daniel


#2

Which version of meteor are you using? Are you using the 1.6.2 beta?

In 1.6.2, Meteor builds a modern and a legacy browser bundle. Bundle visualiser shows both bundles so you can see the bundle size for the old and new browsers


#3

Hi @coagmano, no, i’m on Meteor 1.6.0.1 at the moment as there was an issue with cordova package dependencies on 1.6.1.

I’ll give versions 1.6.1 & 1.6.2 beta a whirl to see if anything changes.

If anybody has any idea on how to find out more about the “innermost circle” of the diagram and to which packages it refers that’d be really cool.


#4

Maybe the second bundle is the cordova bundle?

From memory, bundle visualiser reads from the current build in .meteor/local/build/programs which was why I saw it pick up the new bundle in 1.6.2. Makes sense that it would also show the cordova bundle


#5

Hi @coagmano, thank you so very much!

The mystery has been solved! You are right, it was the cordova package. After removing ‘ios’ from .meteor/platforms I only have one bundle left:

Now I’m thinking about keeping the cordova platforms disabled whilst developing… maybe the build process will be sped up significantly?

I’m gonna experiment with this at least.

Thank you so much once more! :slight_smile:

Daniel


#6

I was surprised to see the same thing on a fresh project with 1.7. In my case it’s not the iOS bundle (all i have in platforms is server & browser). But looking at .meteor/local/build/programs I have server, web.browser and web.browser.legacy. I understand the last 2 to be the modern and legacy bundles referred to by @coagmano above.

So I assume this is expected and ok. Anyone know different?


#7

Yep that’s working properly