Recommend replacing your imports with dynamic imports:
It’s a decently big refactor for an existing app but can pay off in spades. I work on an app that bundles a lot of quite heavy templates with very different heavy dependencies. Refactoring with dynamic imports saved 90% of the initial bundle.
Looks like SSR is coming in 1.5.1 too, which will help time to first render:
Basically you import your css/scss/less/styl file from the dynamically imported js file and it will be inserted in <style> tags in the <head> of your page.
eg: you have main.js and three files for your template foo.html, foo.js, and foo.css
// main.js:
import('/imports/ui/foo.js').then( () => { FlowRouter.go('/foo'); });
// foo.js
import './foo.html'; // import blaze template/jsx/etc
import './foo.css'; // import css/scss/less/etc
// ^^^ These will both be included in the bundle when foo.js is dynamically imported.
Template.foo.onCreated(function () {
/// etc.
});