Hvad er MAP-filformatet?
En .map-fil er et almindeligt tekstbaseret JSON-dokument, der forbinder minificeret eller kompileret output - en samlet .js-fil eller et kompileret CSS-stylesheet - tilbage til den originale, menneskeligt læsbare kildekode. Build-værktøjer som webpack, Vite, esbuild og TypeScript-compileren (tsc) genererer automatisk .map-filer sammen med deres output.
Formatet blev standardiseret som Source Map Revision 3 omkring 2011 og er nu universelt understøttet på tværs af alle større JavaScript- og CSS-build-pipelines. Et source map ligger ved siden af den fil, det beskriver - app.js producerer app.js.map, styles.css producerer styles.css.map - og den minificerede fil refererer til det via en afsluttende kommentar: //# sourceMappingURL=app.js.map (eller /*# sourceMappingURL=styles.css.map */ for CSS).
Hjertet i ethvert source map er feltet mappings: en kompakt Base64 VLQ-kodet streng, der registrerer en segment-for-segment oversættelse fra hver tegnposition i outputtet tilbage til den tilsvarende linje og kolonne i den originale kilde. Andre felter indeholder de originale filstier (sources), valgfrit den fulde kildetekst (sourcesContent) og symbolnavne (names).
Browser-udviklerværktøjer - Chrome DevTools, Firefox Developer Tools og Safari Web Inspector - bruger .map-filer gennemsigtigt. Udviklere kan sætte breakpoints i TypeScript eller SCSS og gennemgå den originale kode, selvom browseren eksekverer minificeret output. .map-filen hentes kun, når DevTools er åbne; den tilføjer ingen belastning ved normal browsing.
Sikkerhed og tryghed
RISIKO: LOWEt source map er passiv JSON og eksekverer ikke kode, så det er harmløst at åbne et. Den reelle bekymring er af privatlivs- og sikkerhedsmæssig karakter for udviklere: source maps, der sendes til produktion, kan eksponere din originale, u-minificerede kildekode - og nogle gange kommentarer, filstier eller sourcesContent - for alle, der åbner DevTools. Mange teams fjerner eller blokerer bevidst .map-filer på offentlige servere af denne grund. Hvis du finder uventede .map-filer på et live-site, kan det være et problem med informationsafsløring, der bør udbedres.
Formatdetaljer
kort fortalt- MapInfo GIS-data (.map + .tab) - Binært geometrilager for en MapInfo-tabel; åbnes via dens tilhørende .tab i QGIS eller MapInfo Pro, ikke for sig selv.
- Spil-level map - Almindelig tekst level-geometri fra id Tech / Quake / Source / Radiant-editorer, kompileret til et binært level (f.eks. .bsp) til afvikling.
- Linker / debug map - Almindelig tekstliste over symboladresser og hukommelseslayout udsendt af en compiler/linker til fejlfinding af nedbrud.
Programmer der åbner MAP-filer
Tekniske detaljer
dyb specifikation| Formattype | Almindelig tekst JSON (UTF-8); ingen binære magic bytes |
| Specifikation | Source Map Revision 3 (v3) |
| MIME-type | application/json |
| Mappings-kodning | Base64 VLQ (Variable-Length Quantity) - koder linje- og kolonneforskydninger for hvert output-segment |
| Påkrævede JSON-felter | version (skal være 3), sources (array af originale filstier), mappings (VLQ-kodet streng) |
| Valgfri JSON-felter | sourcesContent (indlejret original tekst), names (symbolliste), sourceRoot (stipræfiks for alle kilder) |
| Navngivningskonvention | Output-filnavn med .map tilføjet: app.js → app.js.map, styles.css → styles.css.map |
| Kildelink-kommentar (JS) | //# sourceMappingURL=filnavn.js.map - tilføjet til den sidste linje i den minificerede fil |
| Kildelink-kommentar (CSS) | /*# sourceMappingURL=filnavn.css.map */ - tilføjet til det kompilerede stylesheet |
| Typiske generatorer | webpack, Vite, esbuild, TypeScript-compiler (tsc), Dart Sass, Rollup, Parcel |
| Forbruges af | Browser DevTools: Chrome DevTools, Firefox Developer Tools, Safari Web Inspector, Edge DevTools |
| Mapping-præcision | Kolonne-niveau: hvert VLQ-segment mapper en enkelt output-kolonne til kildelinje og -kolonne |
| Filstørrelse | Typisk 2-10× størrelsen af det minificerede output; vokser yderligere, når sourcesContent er indlejret |
| HTTP-leveringsalternativ | X-SourceMap response header (forældet; inline-kommentar er den foretrukne metode) |
| DevTools-aktivering | Hentes kun, når browserens DevTools er åbne; anmodes ikke om under normal sideindlæsning |
| Udgivet | Source Map format v3 (~2011); ubiquitous with modern JS/CSS build tooling |
| Åben standard | Ja · royaltyfri |
| Specifikation | sourcemaps.info |
MAP-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om MAP-filer.