Differential loading is a process by which the browser chooses between modern or legacy JavaScript based on its own capabilities. We now take advantage of this by default by performing a modern build (es2015) and a legacy build (es5) of your application. When users load your application, they’ll automatically get the bundle they need.
https://blog.angular.io/version-8-of-angular-smaller-bundles-cli-apis-and-alignment-with-the-ecosystem-af0261112a27
In short it will make it so newer browsers got a bundle with newer capabilities, and older browsers will get a transpilled version. So yes it will increase the size of your application on server, but won't increase the bundle that will be downloaded ( you won't download both bundles etc).
If you look at the generated index.html for example:
<script src="runtime-es2015.33c6d44d6f111520cede.js" type="module"></script>
<script src="runtime-es5.33c6d44d6f111520cede.js" nomodule defer></script>
the <script>
tag with type="module
will be downloaded by newer browsers, and they will ignore the <script>
with nomodule
attribute :
The nomodule attribute is a boolean attribute that prevents a script from being executed in user agents that support module scripts.
What’s the purpose of the HTML “nomodule” attribute for script elements if the default is text/javascript?