Vad är filformatet MAP?
En .map-fil är ett JSON-dokument i klartext som länkar minifierad eller kompilerad utdata - en paketerad .js-fil eller en kompilerad CSS-stilmall - tillbaka till den ursprungliga mänskligt läsbara källkoden. Byggverktyg som webpack, Vite, esbuild och TypeScript-kompilatorn (tsc) genererar .map-filer automatiskt tillsammans med sin utdata.
Formatet standardiserades som Source Map Revision 3 omkring 2011 och stöds nu universellt i alla större byggpipelines för JavaScript och CSS. En källkarta ligger bredvid filen den beskriver - app.js producerar app.js.map, styles.css producerar styles.css.map - och den minifierade filen refererar till den via en avslutande kommentar: //# sourceMappingURL=app.js.map (eller /*# sourceMappingURL=styles.css.map */ för CSS).
Hjärtat i varje källkarta är fältet mappings: en kompakt Base64 VLQ-kodad sträng som registrerar en segment-för-segment-översättning från varje teckenposition i utdatan tillbaka till motsvarande rad och kolumn i originalkällan. Andra fält innehåller de ursprungliga filsökvägarna (sources), valfritt hela källtexten (sourcesContent) och symbolnamn (names).
Webbläsarens utvecklarverktyg - Chrome DevTools, Firefox Developer Tools och Safari Web Inspector - använder .map-filer transparent. Utvecklare kan sätta brytpunkter i TypeScript eller SCSS och stega igenom originalkoden även om webbläsaren kör minifierad utdata. .map-filen hämtas endast när DevTools är öppet; den lägger inte till någon overhead vid normal surfning.
Säkerhet & trygghet
RISK: LOWEn källkarta är passiv JSON och kör inte kod, så att öppna en är ofarligt. Den verkliga oron är integritet och säkerhet för utvecklare: källkartor som skickas till produktion kan exponera din ursprungliga, o-minifierade källkod - och ibland kommentarer, filsökvägar eller sourcesContent - för vem som helst som öppnar DevTools. Många team tar medvetet bort eller blockerar .map-filer på publika servrar av denna anledning. Om du hittar oväntade .map-filer på en live-webbplats kan det vara ett informationsläckage som bör åtgärdas.
Formatdetaljer
i ett nötskal- MapInfo GIS-data (.map + .tab) - Binär geometrilagring för en MapInfo-tabell; öppnas via dess tillhörande .tab i QGIS eller MapInfo Pro, inte på egen hand.
- Spelnivåkarta (Game level map) - Nivågeometri i klartext från id Tech / Quake / Source / Radiant-redigerare, kompilerad till en binär nivå (t.ex. .bsp) för spel.
- Länkar- / felsökningskarta (Linker map) - Klartextlista över symboladresser och minneslayout som skapas av en kompilator/länkare för felsökning av krascher.
Program som öppnar MAP-filer
Tekniska detaljer
djup specifikation| Formattyp | JSON i klartext (UTF-8); inga binära magic bytes |
| Specifikation | Source Map Revision 3 (v3) |
| MIME-typ | application/json |
| Mappings-kodning | Base64 VLQ (Variable-Length Quantity) - kodar rad- och kolumnförskjutningar för varje utdatasegment |
| Obligatoriska JSON-fält | version (måste vara 3), sources (array med ursprungliga filsökvägar), mappings (VLQ-kodad sträng) |
| Valfria JSON-fält | sourcesContent (inbäddad originaltext), names (symbollista), sourceRoot (sökvägsprefix för alla källor) |
| Namngivningskonvention | Utdatans filnamn med .map tillagt: app.js → app.js.map, styles.css → styles.css.map |
| Källänkskommentar (JS) | //# sourceMappingURL=filename.js.map - läggs till på sista raden i den minifierade filen |
| Källänkskommentar (CSS) | /*# sourceMappingURL=filename.css.map */ - läggs till i den kompilerade stilmallen |
| Typiska generatorer | webpack, Vite, esbuild, TypeScript-kompilator (tsc), Dart Sass, Rollup, Parcel |
| Används av | Webbläsarens DevTools: Chrome DevTools, Firefox Developer Tools, Safari Web Inspector, Edge DevTools |
| Mappningsprecision | Kolumnnivå: varje VLQ-segment mappar en enskild utdatakolumn till källrad och kolumn |
| Filstorlek | Vanligtvis 2-10× storleken på den minifierade utdatan; växer ytterligare när sourcesContent är inbäddad |
| Alternativ för HTTP-leverans | X-SourceMap-svarshuvud (föråldrat; inline-kommentar är den föredragna metoden) |
| DevTools-aktivering | Hämtas endast när webbläsarens DevTools är öppet; begärs inte vid normal sidladdning |
| Släppt | Source Map format v3 (~2011); ubiquitous with modern JS/CSS build tooling |
| Öppen standard | Ja · royaltyfri |
| Specifikation | sourcemaps.info |
MAP-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om MAP-filer.