More and more of my own project uses <script type="module" src="app.js">, and for good measure, I tend to use Parcel (or Rollup) to compile a nomodule bundle that ships alongside the "regular" code.

Except, of course, Safari 10 doesn't support nomodule. News to me, TIL.

So in this case the whole codebase gets run twice.

Thankfully a smartie has a solution to detect nomodule support.