Import maps work in Chrome 89+, Edge 89+, Firefox 108+, Safari 16.4+, Opera 76+, and Samsung Internet 15+. See key features, detection, and known issues.

Prince Dewani
May 6, 2026
Import maps are a JSON-based HTML feature that lets a script type=importmap tag remap JavaScript module specifiers to URLs, defined by the WHATWG HTML Standard. They work in Chrome 89+, Edge 89+, Firefox 108+, Safari 16.4+ on macOS and iOS, Opera 76+, and Samsung Internet 15+, while Internet Explorer never added support.
This guide covers what import maps are, the browsers that support them, the key features, how to check support, and the known issues.
Import maps are a WHATWG HTML feature that ship a JSON object inside a script type=importmap tag. The browser uses that JSON to remap bare module specifiers, path prefixes, and per-scope overrides for every import statement and dynamic import call on the page.
Every current Chromium, Gecko, and WebKit release supports import maps, with global support around 95%. Chrome, Edge, Firefox, Safari, Opera, and Samsung Internet all ship the feature on by default, and Internet Explorer never added support.
Chrome supports import maps from Chrome 89 on Windows, macOS, Linux, ChromeOS, and Android. The feature ships on by default with no flag, and the same release covers the imports and scopes keys. Chrome 127 added support for the integrity key inside the import map JSON. Chrome 4 to 88 did not support import maps.
Microsoft Edge supports import maps from Edge 89 on Windows, macOS, and Linux. Modern Edge tracks Chrome closely, so the imports, scopes, and integrity keys land in the same Edge release as the matching Chrome version. Legacy EdgeHTML 12 to 44 did not support import maps.
Firefox supports import maps from Firefox 108 on Windows, macOS, Linux, and Android. The imports and scopes keys ship on by default, and Firefox 138 added support for the integrity key. Firefox 2 to 107 did not support import maps.
Safari supports import maps from Safari 16.4 on macOS and from Safari on iOS 16.4 on iPhone and iPad. The imports and scopes keys ship on by default, and Safari 18.4 added support for the integrity key. Safari 3.1 to 16.3 did not support import maps and silently ignored the tag.
Opera supports import maps from Opera 76 on Windows, macOS, and Linux. Opera Mobile picked up the feature from Opera Mobile 80 on Android. Both browsers track Chromium, so feature parity with Chrome holds across releases. Opera 9 to 75 did not support import maps.
Samsung Internet supports import maps from Samsung Internet 15 on Galaxy phones and tablets. The browser tracks Chromium, so the imports and scopes keys land in the same Samsung Internet release as the matching Chromium baseline. Samsung Internet 4 to 14 did not support import maps.
The legacy Android Browser did not support import maps. On modern Android phones, the stock browser is Chrome for Android, which ships import maps from Chrome 89 on every supported Android version. WebView-based apps on Android pick up import maps from the same Chromium baseline.
Internet Explorer 11 and earlier do not support import maps or ES modules. Microsoft has retired Internet Explorer, so legacy IE pages have to ship a polyfill such as es-module-shims or rely on a webpack or Rollup bundle. Move IE-only code to Chromium-based Edge for any new work.
Note: Import maps still surface quirks across Safari, Firefox, and older mobile builds. Test it on real browsers and OS with TestMu AI. Try TestMu AI free!
Import maps pack a small but powerful module-resolution layer into one JSON object. The headline features cover bare specifiers, path remapping, scoped overrides, integrity hashes, and merged maps.
Run a one-line feature check in the DevTools console. The browser exposes an HTMLScriptElement.supports static method that returns true for "importmap" on every browser that honors the tag.
// Paste this into the DevTools console to confirm import map support.
if (typeof HTMLScriptElement !== "undefined" &&
typeof HTMLScriptElement.supports === "function" &&
HTMLScriptElement.supports("importmap")) {
console.log("Import maps are supported in this browser.");
const map = document.createElement("script");
map.type = "importmap";
map.textContent = JSON.stringify({
imports: { "lodash": "https://cdn.jsdelivr.net/npm/lodash-es@4/lodash.js" }
});
document.head.appendChild(map);
console.log("Inline import map appended for the lodash bare specifier.");
} else {
console.log("Import maps are not supported in this browser.");
}If the console prints "Import maps are not supported in this browser", load the es-module-shims polyfill before any module imports. Chromium, Gecko, and WebKit current releases all log a positive result.
Import maps ship in every modern browser, but a small set of cross-browser limits still bite real projects. The common pain points are tag ordering, worker scope, single-map limits, integrity-key gaps, and Safari's late arrival.
In my experience, the trickiest production failure is the silent drop on a late tag. A build pipeline that injects the import map after the first inline module fails on Safari and Firefox, while Chrome warns but still resolves, so a green local test masks a broken iOS deploy. Always render the import map inside the document head before any other script tag.
All import maps version numbers and platform notes in this guide come from these primary sources:
Did you find this page helpful?
More Related Hubs
TestMu AI forEnterprise
Get access to solutions built on Enterprise
grade security, privacy, & compliance