Qu'est-ce que le format de fichier MAP ?
Un fichier .map est un document JSON en texte brut qui lie une sortie minifiée ou compilée - un fichier .js regroupé ou une feuille de style CSS compilée - au code source original lisible par l'homme. Les outils de construction tels que webpack, Vite, esbuild et le compilateur TypeScript (tsc) génèrent automatiquement des fichiers .map en même temps que leur sortie.
Le format a été standardisé sous le nom de Source Map Revision 3 vers 2011 et est désormais universellement pris en charge par tous les principaux pipelines de construction JavaScript et CSS. Une source map se trouve à côté du fichier qu'elle décrit - app.js produit app.js.map, styles.css produit styles.css.map - et le fichier minifié y fait référence via un commentaire final : //# sourceMappingURL=app.js.map (ou /*# sourceMappingURL=styles.css.map */ pour le CSS).
Le cœur de chaque source map est le champ mappings : une chaîne compacte encodée en Base64 VLQ qui enregistre une traduction segment par segment de chaque position de caractère dans la sortie vers la ligne et la colonne correspondantes dans la source originale. D'autres champs contiennent les chemins des fichiers originaux (sources), éventuellement le texte source complet (sourcesContent) et les noms des symboles (names).
Les outils de développement des navigateurs - Chrome DevTools, Firefox Developer Tools et Safari Web Inspector - consomment les fichiers .map de manière transparente. Les développeurs peuvent définir des points d'arrêt dans TypeScript ou SCSS et parcourir le code original même si le navigateur exécute une sortie minifiée. Le fichier .map n'est récupéré que lorsque les DevTools sont ouverts ; il n'ajoute aucune surcharge à la navigation normale.
Sécurité et sûreté
RISQUE : LOWUne source map est un JSON passif et n'exécute pas de code, donc en ouvrir une est inoffensif. La véritable préoccupation est d'ordre privé/sécuritaire pour les développeurs : les source maps livrées en production peuvent exposer votre code source original non minifié - et parfois des commentaires, des chemins de fichiers ou sourcesContent - à toute personne ouvrant les DevTools. De nombreuses équipes suppriment ou bloquent délibérément les fichiers .map sur les serveurs publics pour cette raison. Si vous trouvez des fichiers .map inattendus sur un site en ligne, il peut s'agir d'un problème de divulgation d'informations méritant d'être corrigé.
Détails du format
en bref- Données SIG MapInfo (.map + .tab) - Stockage de géométrie binaire pour une table MapInfo ; ouvert via son compagnon .tab dans QGIS ou MapInfo Pro, pas seul.
- Carte de niveau de jeu - Géométrie de niveau en texte brut provenant des éditeurs id Tech / Quake / Source / Radiant, compilée en un niveau binaire (ex: .bsp) pour le jeu.
- Carte de liaison / débogage - Liste en texte brut des adresses de symboles et de la disposition de la mémoire émise par un compilateur/lieur pour le débogage des plantages.
Programmes qui ouvrent les fichiers MAP
Détails techniques
spécifications approfondies| Type de format | JSON en texte brut (UTF-8) ; pas d'octets magiques binaires |
| Spécification | Source Map Revision 3 (v3) |
| Type MIME | application/json |
| Encodage des correspondances | Base64 VLQ (Variable-Length Quantity) - encode les décalages de ligne et de colonne pour chaque segment de sortie |
| Champs JSON obligatoires | version (doit être égal à 3), sources (tableau de chemins de fichiers originaux), mappings (chaîne encodée en VLQ) |
| Champs JSON facultatifs | sourcesContent (texte original intégré), names (liste de symboles), sourceRoot (préfixe de chemin pour toutes les sources) |
| Convention de nommage | Nom du fichier de sortie avec .map ajouté : app.js → app.js.map, styles.css → styles.css.map |
| Commentaire de lien source (JS) | //# sourceMappingURL=filename.js.map - ajouté à la dernière ligne du fichier minifié |
| Commentaire de lien source (CSS) | /*# sourceMappingURL=filename.css.map */ - ajouté à la feuille de style compilée |
| Générateurs typiques | webpack, Vite, esbuild, compilateur TypeScript (tsc), Dart Sass, Rollup, Parcel |
| Consommé par | Outils de développement du navigateur : Chrome DevTools, Firefox Developer Tools, Safari Web Inspector, Edge DevTools |
| Précision de la correspondance | Niveau colonne : chaque segment VLQ fait correspondre une seule colonne de sortie à une ligne et une colonne source |
| Taille du fichier | Généralement 2 à 10 fois la taille de la sortie minifiée ; augmente davantage lorsque sourcesContent est intégré |
| Alternative de livraison HTTP | En-tête de réponse X-SourceMap (obsolète ; le commentaire en ligne est la méthode préférée) |
| Activation des DevTools | Récupéré uniquement lorsque les DevTools du navigateur sont ouverts ; non demandé lors du chargement normal de la page |
| Publié | Source Map format v3 (~2011); ubiquitous with modern JS/CSS build tooling |
| Standard ouvert | Oui · libre de droits |
| Spécification | sourcemaps.info |
Conversions MAP
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers MAP.