Import Maps — JSON конфиг внутри HTML, который маппит bare import specifiers ("react", "lodash") в real URLs. Позволяет использовать ES modules в браузере БЕЗ bundler. Все modern browsers support (Chrome 89+, Firefox 108+, Safari 16.4+). Use cases: no-build frontend, HTMX apps, WordPress, dev-only imports.
Ниже: подробности, пример, смежные термины, FAQ.
<!-- HTML -->
<script type="importmap">
{
"imports": {
"react": "https://esm.sh/react@18",
"react-dom": "https://esm.sh/react-dom@18",
"lodash/": "https://esm.sh/lodash/"
}
}
</script>
<script type="module">
import React from 'react'; // resolves к esm.sh
import debounce from 'lodash/debounce';
</script>Для simple projects — да. Для complex apps (tree-shaking, minification, TypeScript) — всё ещё нужен. Dev-only без bundler — рабочий tradeoff.
esm.sh: active, быстрый, aggressive caching. skypack.dev: deprecated (2024). Используйте esm.sh или unpkg.com для 2026.
Modules нуждаются в CORS headers. esm.sh, unpkg, jsdelivr — все OK. Self-host ES modules на CDN с правильными headers.