Рассмотрим паттерн module/nomodule, который позволяет разделить загрузку скриптов для старых и новых браузеров.
Разделение скриптов JS таким образом позволяет автоматически загружать отдельный бандл в современных браузерах, а в IE11 и других устаревших браузерах – бандл для IE11.
Короткий и простой пример:
<script type="module" src="https://cdn.jsdelivr.net/gh/alpinejs/[email protected]/dist/alpine.min.js"></script>
<script nomodule src="https://cdn.jsdelivr.net/gh/alpinejs/[email protected]/dist/alpine-ie11.min.js" defer></script>
К сожалению, не всё так просто. Показанный выше подход на основе HTML инициирует перезагрузку скриптов в Edge и Safari.
Более детальные варианты решения задачи есть тут https://habr.com/ru/company/raiffeisenbank/blog/473994/