I think you really should give a try to JSPM. The next version is nearly there and is really far better than the previous one (I’m talking about the 0.17).
You miss out what JSPM is in fact. JSPM is an universal package manager and a bundler. It also comes out of the box with SystemJS and allow to adapt modules for it and ease its configuration by almost doing all the job.
SystemJS is the polyfill for the ES Module Loader. Sure the spec isn’t ready yet, but I think the method System.import (which is almost the only one you will use in your codebase and only for first load and dynamic loading) is pretty sure to be kept in the final draft. There is maybe a tiny risk but the changes you’d need to do on your codebase would be really easy.
Even if it’s still a too big risk for you — and I understand this point of view, the combo JSPM+SystemJS(+Rollup) should really be kept in mind.
About the fact that JSPM is slow, I’ve only used it on small/middle -size codebases but it wan’t slow enough to feel like it. On large codebases it could become a bit slow on first load — in that case maybe you should consider lazy-loading, that could mean you’re loading too much too soon– you can use hot reloading to avoid having this more than once in dev. In production–of course– everything is already compiled and optimized by Rollup.
I was using JSPM at first. I then switched to webpack, but once the new version of JSPM will cease to be a beta, I will immediatly switch again to it (and yes, I’ve seen what is coming with webpack 2). And for personal projects, I’m already using it (for back and front).
For the e2e tests, I’m using CodeceptJS; it’s really amazing, if you want to look at it :)