Hey John!
If Google had any golden jewel, for the good of man, it was Closure project and especially the compiler. Thank you for your work.
We have a lot of legacy code still using the require/provide pattern. New and old projects are moving forward. Though, I'm still fond of the classic process; it was very productive.
We develop in modern browsers, but we'll still be targeting ES5 in many/most cases. I can't wait to see how await/etc is transpiled, and how well it all works.
I'll have to catch up on any code/module loading patterns. I asked about the module loader specs years ago, and I'm still aware of any concrete definition and wide implementation of all the things required to hook into the ES6 import process. I can't even find a reference to what I'm looking for.. I think it was System.register, "system module loader", or some such. As it stands, the file/module loading abstracted by closure (deps.js and base.js) is superior.
We certainly do employ similar build patterns... The deps.js generation was really only part of the development cycle when fully uncompiled. We create a deps.js; include it and base.js in any given page, script, and we're in the race. We also used this for uncompiled test cases involving DOM/HTML. Again, super productive in many other cases. The details of getting interop with goog.require/provide/etc and ES6 are outlined in the closure library, so I'm basing from there. [1]
Thank You!
Nate