Hva er MAP-filformatet?
En .map-fil er et JSON-dokument i ren tekst som kobler minifisert eller kompilert utdata - en sammenslått .js-fil eller et kompilert CSS-stilark - tilbake til den opprinnelige, menneskelig lesbare kildekoden. Byggverktøy som webpack, Vite, esbuild og TypeScript-kompilatoren (tsc) genererer .map-filer automatisk sammen med utdataene sine.
Formatet ble standardisert som Source Map Revision 3 rundt 2011 og er nå universelt støttet på tvers av alle store byggesystemer for JavaScript og CSS. Et kildekart ligger ved siden av filen den beskriver - app.js produserer app.js.map, styles.css produserer styles.css.map - og den minifiserte filen refererer til den via en avsluttende kommentar: //# sourceMappingURL=app.js.map (eller /*# sourceMappingURL=styles.css.map */ for CSS).
Hjertet i ethvert kildekart er feltet mappings: en kompakt Base64 VLQ-kodet streng som registrerer en segment-for-segment-oversettelse fra hver tegnposisjon i utdataene tilbake til tilsvarende linje og kolonne i den opprinnelige kilden. Andre felt inneholder de opprinnelige filstiene (sources), valgfritt den fullstendige kildeteksten (sourcesContent) og symbolnavn (names).
Utviklerverktøy i nettlesere - Chrome DevTools, Firefox Developer Tools og Safari Web Inspector - bruker .map-filer sømløst. Utviklere kan sette brytningspunkter i TypeScript eller SCSS og gå gjennom original kildekode selv om nettleseren kjører minifisert utdata. .map-filen hentes bare når utviklerverktøyene er åpne; den legger ikke til noen belastning ved vanlig surfing.
Sikkerhet og trygghet
RISIKO: LOWEt kildekart er passiv JSON og kjører ikke kode, så det er ufarlig å åpne en. Den virkelige bekymringen er knyttet til personvern/sikkerhet for utviklere: kildekart som sendes til produksjon kan eksponere din opprinnelige, u-minifiserte kildekode - og noen ganger kommentarer, filstier eller sourcesContent - for alle som åpner utviklerverktøy. Mange team fjerner eller blokkerer bevisst .map-filer på offentlige servere av denne grunn. Hvis du finner uventede .map-filer på et aktivt nettsted, kan det være et problem med informasjonsavsløring som bør utbedres.
Formatdetaljer
i et nøtteskall- MapInfo GIS-data (.map + .tab) - Binært geometrilager for en MapInfo-tabell; åpnes via tilhørende .tab i QGIS eller MapInfo Pro, ikke alene.
- Spillnivå-kart - Nivågeometri i ren tekst fra id Tech / Quake / Source / Radiant-editorer, kompilert til et binært nivå (f.eks. .bsp) for spilling.
- Linker- / feilsøkingskart - Tekstliste over symboladresser og minneoppsett generert av en kompilator/linker for feilsøking av krasj.
Programmer som åpner MAP-filer
Tekniske detaljer
dyp spesifikasjon| Format-type | Ren tekst JSON (UTF-8); ingen binære magic bytes |
| Spesifikasjon | Source Map Revision 3 (v3) |
| MIME-type | application/json |
| Mappings-koding | Base64 VLQ (Variable-Length Quantity) - koder linje- og kolonneforskyvninger for hvert utdatasegment |
| Påkrevde JSON-felt | version (må være 3), sources (matrise med opprinnelige filstier), mappings (VLQ-kodet streng) |
| Valgfrie JSON-felt | sourcesContent (innebygd originaltekst), names (symbolliste), sourceRoot (stiprefiks for alle kilder) |
| Navnekonvensjon | Utdatafilnavn med .map lagt til: app.js → app.js.map, styles.css → styles.css.map |
| Kildekoblingskommentar (JS) | //# sourceMappingURL=filnavn.js.map - lagt til på siste linje i den minifiserte filen |
| Kildekoblingskommentar (CSS) | /*# sourceMappingURL=filnavn.css.map */ - lagt til i det kompilerte stilarket |
| Typiske generatorer | webpack, Vite, esbuild, TypeScript-kompilator (tsc), Dart Sass, Rollup, Parcel |
| Brukt av | Nettleser-utviklerverktøy: Chrome DevTools, Firefox Developer Tools, Safari Web Inspector, Edge DevTools |
| Mapping-presisjon | Kolonne-nivå: hvert VLQ-segment kobler en enkelt utdatakolonne til kildelinje og -kolonne |
| Filstørrelse | Vanligvis 2-10× størrelsen på minifisert utdata; vokser ytterligere når sourcesContent er innebygd |
| Alternativ HTTP-levering | X-SourceMap-responshode (foreldet; innebygd kommentar er den foretrukne metoden) |
| Aktivering i utviklerverktøy | Hentes bare når nettleserens utviklerverktøy er åpne; forespørres ikke under vanlig sidelasting |
| Utgitt | Source Map format v3 (~2011); ubiquitous with modern JS/CSS build tooling |
| Åpen standard | Ja · royalty-fri |
| Spesifikasjon | sourcemaps.info |
MAP-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om MAP-filer.