Атрибут nomodule тега <script>


Описание

Атрибут nomodule указывает браузеру, что скрипт должен выполняться только в браузерах, не поддерживающих модули ES6 (ECMAScript 2015). Это полезно для предоставления альтернативной версии кода старым браузерам.

Пример использования:
<!-- Современные браузеры --> <script type="module" src="modern.js"></script> <!-- Только старые браузеры --> <script nomodule src="legacy.js"></script>

Ключевые особенности:

Характеристика Описание
Назначение Полифил для старых браузеров
Поддержка Игнорируется браузерами с поддержкой ES-модулей
Использование Всегда в паре с type="module"

Практическое применение:

Типичный сценарий использования:

  1. Современный код в модуле (modern.js)
  2. Транспилированная версия для старых браузеров (legacy.js)
  3. Браузер сам выбирает подходящую версию

Поддержка браузеров:

  • Поддерживается: IE11, старые версии Safari
  • Игнорируется: Chrome 61+, Firefox 60+, Edge 16+
  • Не заменяет полноценное определение возможностей браузера

Рекомендации:

  • Используйте для graceful degradation
  • Комбинируйте с системой сборки (Webpack, Rollup)
  • Тестируйте в целевых браузерах
  • Не используйте для критического функционала

Примечание: В современных проектах рекомендуется использовать связку:

  • type="module" - для современных браузеров
  • nomodule - как fallback для старых версий
  • Современные инструменты сборки автоматически генерируют оба варианта