How do you deploy them? What does this look like for Blink + Babel, frameworks? We've got nomodule
coming. This looks like:
<script type="module" src="app.js"></script>
<script nomodule defer src="bundle.js"></script>
Is it realistic for someone to deploy code this way by the end of 2017? What are the benefits of doing so? Are there any?
If Blink optimises modules, is the best-case that they're still only as fast as ES5 <script>
? If not, is nomodule
even useful?
What if we think about it as nomodule
bundle is your transpiled 'legacy' bundle for older browsers? Maybe that becomes more useful.
So your <script type="module" src="app.js">
is your raw ES2015+ code in ES module format and your legacy bundle contains transpiled
ES2015. The trickiness here is ensuring the browsers hitting the type=module
path have a complete implementation, but a partial one.
TIL Safari has already implemented nomodule
in addition to their import()
and modules support.
There's also a discussion to be had around what all of this even means for components you're writing that are distributed through npm.
What do we need to do to make this a thing in 2017? Usage numbers growing, but it would be great if more people shipped only transpiled features that were needed. Modern browsers have pretty good support otherwise. Anything we can do to bake these in to [framework]-cli for each framework?