Wat is het MAP-bestandsformaat?
Een .map-bestand is een platte-tekst JSON document dat verkleinde of gecompileerde uitvoer - een gebundeld .js-bestand of een gecompileerd CSS-stylesheet - terugkoppelt naar de originele, menselijk leesbare broncode. Build-tools zoals webpack, Vite, esbuild en de TypeScript-compiler (tsc) genereren automatisch .map-bestanden naast hun uitvoer.
Het formaat werd rond 2011 gestandaardiseerd als Source Map Revision 3 en wordt nu universeel ondersteund door elke belangrijke JavaScript- en CSS-build-pipeline. Een source map bevindt zich naast het bestand dat het beschrijft - app.js produceert app.js.map, styles.css produceert styles.css.map - en het verkleinde bestand verwijst ernaar via een commentaar aan het einde: //# sourceMappingURL=app.js.map (of /*# sourceMappingURL=styles.css.map */ voor CSS).
De kern van elke source map is het veld mappings: een compacte Base64 VLQ-gecodeerde reeks die een segment-voor-segment vertaling vastlegt van elke karakterpositie in de uitvoer terug naar de bijbehorende regel en kolom in de originele bron. Andere velden bevatten de originele bestandspaden (sources), optioneel de volledige brontekst (sourcesContent) en symboolnamen (names).
Browser-ontwikkelaarstools - Chrome DevTools, Firefox Developer Tools en Safari Web Inspector - gebruiken .map-bestanden transparant. Ontwikkelaars kunnen breakpoints instellen in TypeScript of SCSS en door de originele code stappen, zelfs als de browser verkleinde uitvoer uitvoert. Het .map-bestand wordt alleen opgehaald wanneer de DevTools geopend zijn; het voegt geen overhead toe aan normaal browsen.
Beveiliging & veiligheid
RISICO: LOWEen source map is passieve JSON en voert geen code uit, dus het openen ervan is ongevaarlijk. De echte zorg is een privacy-/beveiligingskwestie voor ontwikkelaars: source maps die naar productie worden verzonden, kunnen uw originele, niet-verkleinde broncode - en soms commentaren, bestandspaden of sourcesContent - blootstellen aan iedereen die de DevTools opent. Veel teams verwijderen of blokkeren .map-bestanden op openbare servers om deze reden. Als u onverwachte .map-bestanden op een live site vindt, kan dat een informatielek zijn dat opgelost moet worden.
Formaatdetails
in een notendop- MapInfo GIS-gegevens (.map + .tab) - Binaire geometrie-opslag voor een MapInfo-tabel; geopend via de bijbehorende .tab in QGIS of MapInfo Pro, niet op zichzelf.
- Game level map - Platte-tekst levelgeometrie van id Tech / Quake / Source / Radiant editors, gecompileerd naar een binair niveau (bijv. .bsp) om te spelen.
- Linker / debug map - Platte-tekst lijst van symbooladressen en geheugenindeling uitgegeven door een compiler/linker voor het debuggen van crashes.
Programma's die MAP-bestanden openen
Technische details
diepe specificaties| Formaat-type | Platte-tekst JSON (UTF-8); geen binaire magic bytes |
| Specificatie | Source Map Revision 3 (v3) |
| MIME-type | application/json |
| Mappings-codering | Base64 VLQ (Variable-Length Quantity) - codeert regel- en kolomafwijkingen voor elk uitvoersegment |
| Vereiste JSON-velden | version (moet gelijk zijn aan 3), sources (array van originele bestandspaden), mappings (VLQ-gecodeerde reeks) |
| Optionele JSON-velden | sourcesContent (ingebedde originele tekst), names (symboollijst), sourceRoot (pad-prefix voor alle bronnen) |
| Naamgevingsconventie | Uitvoerbestandsnaam met .map toegevoegd: app.js → app.js.map, styles.css → styles.css.map |
| Bronlink-commentaar (JS) | //# sourceMappingURL=bestandsnaam.js.map - toegevoegd aan de laatste regel van het verkleinde bestand |
| Bronlink-commentaar (CSS) | /*# sourceMappingURL=bestandsnaam.css.map */ - toegevoegd aan het gecompileerde stylesheet |
| Typische generatoren | webpack, Vite, esbuild, TypeScript compiler (tsc), Dart Sass, Rollup, Parcel |
| Gebruikt door | Browser DevTools: Chrome DevTools, Firefox Developer Tools, Safari Web Inspector, Edge DevTools |
| Mapping-precisie | Kolom-niveau: elk VLQ-segment koppelt een enkele uitvoerkolom aan een bronregel en -kolom |
| Bestandsgrootte | Meestal 2-10× de grootte van de verkleinde uitvoer; groeit verder wanneer sourcesContent is ingebed |
| Alternatief voor HTTP-levering | X-SourceMap response header (verouderd; inline commentaar is de voorkeursmethode) |
| DevTools-activering | Alleen opgehaald wanneer browser DevTools geopend zijn; wordt niet opgevraagd tijdens normaal laden van de pagina |
| Uitgebracht | Source Map format v3 (~2011); ubiquitous with modern JS/CSS build tooling |
| Open standaard | Ja · royaltyvrij |
| Specificatie | sourcemaps.info |
MAP conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over MAP-bestanden.