O que é o formato de ficheiro MAP?
Um arquivo .map é um documento JSON em texto simples que vincula a saída minificada ou compilada - um arquivo .js empacotado ou uma folha de estilo CSS compilada - de volta ao código-fonte original legível por humanos. Ferramentas de build como webpack, Vite, esbuild e o compilador TypeScript (tsc) geram arquivos .map automaticamente junto com sua saída.
O formato foi padronizado como Source Map Revision 3 por volta de 2011 e agora é universalmente suportado em todos os principais pipelines de build de JavaScript e CSS. Um source map fica ao lado do arquivo que ele descreve - app.js produz app.js.map, styles.css produz styles.css.map - e o arquivo minificado o referencia por meio de um comentário final: //# sourceMappingURL=app.js.map (ou /*# sourceMappingURL=styles.css.map */ para CSS).
O coração de cada source map é o campo mappings: uma string compacta codificada em Base64 VLQ que registra uma tradução segmento por segmento de cada posição de caractere na saída de volta para a linha e coluna correspondentes no código original. Outros campos contêm os caminhos dos arquivos originais (sources), opcionalmente o texto completo do código-fonte (sourcesContent) e nomes de símbolos (names).
As ferramentas de desenvolvedor do navegador - Chrome DevTools, Firefox Developer Tools e Safari Web Inspector - consomem arquivos .map de forma transparente. Os desenvolvedores podem definir breakpoints em TypeScript ou SCSS e depurar o código original, mesmo que o navegador esteja executando a saída minificada. O arquivo .map só é buscado quando as DevTools estão abertas; ele não adiciona sobrecarga à navegação normal.
Segurança e proteção
RISCO: LOWUm source map é um JSON passivo e não executa código, portanto, abrir um é inofensivo. A preocupação real é de privacidade/segurança para os desenvolvedores: source maps enviados para produção podem expor seu código-fonte original não minificado - e às vezes comentários, caminhos de arquivos ou sourcesContent - para qualquer pessoa que abrir as DevTools. Muitas equipes removem ou bloqueiam deliberadamente arquivos .map em servidores públicos por esse motivo. Se você encontrar arquivos .map inesperados em um site ativo, isso pode ser um problema de divulgação de informações que vale a pena corrigir.
Detalhes do formato
em resumo- Dados GIS do MapInfo (.map + .tab) - Armazenamento de geometria binária para uma tabela MapInfo; aberto através do seu companheiro .tab no QGIS ou MapInfo Pro, não isoladamente.
- Mapa de nível de jogo - Geometria de nível em texto simples de editores id Tech / Quake / Source / Radiant, compilada para um nível binário (ex: .bsp) para jogar.
- Mapa de linker / depuração - Listagem em texto simples de endereços de símbolos e layout de memória emitida por um compilador/linker para depurar falhas.
Programas que abrem arquivos MAP
Detalhes técnicos
especificação profunda| Tipo de formato | JSON em texto simples (UTF-8); sem magic bytes binários |
| Especificação | Source Map Revision 3 (v3) |
| Tipo MIME | application/json |
| Codificação de mapeamentos | Base64 VLQ (Variable-Length Quantity) - codifica deslocamentos de linha e coluna para cada segmento de saída |
| Campos JSON obrigatórios | version (deve ser igual a 3), sources (array de caminhos de arquivos originais), mappings (string codificada em VLQ) |
| Campos JSON opcionais | sourcesContent (texto original incorporado), names (lista de símbolos), sourceRoot (prefixo de caminho para todas as fontes) |
| Convenção de nomenclatura | Nome do arquivo de saída com .map anexado: app.js → app.js.map, styles.css → styles.css.map |
| Comentário de link de fonte (JS) | //# sourceMappingURL=filename.js.map - anexado à última linha do arquivo minificado |
| Comentário de link de fonte (CSS) | /*# sourceMappingURL=filename.css.map */ - anexado à folha de estilo compilada |
| Geradores típicos | webpack, Vite, esbuild, compilador TypeScript (tsc), Dart Sass, Rollup, Parcel |
| Consumido por | Browser DevTools: Chrome DevTools, Firefox Developer Tools, Safari Web Inspector, Edge DevTools |
| Precisão de mapeamento | Nível de coluna: cada segmento VLQ mapeia uma única coluna de saída para a linha e coluna de origem |
| Tamanho do arquivo | Normalmente 2-10× o tamanho da saída minificada; cresce ainda mais quando o sourcesContent é incorporado |
| Alternativa de entrega HTTP | Cabeçalho de resposta X-SourceMap (descontinuado; o comentário inline é o método preferido) |
| Ativação de DevTools | Buscado apenas quando as DevTools do navegador estão abertas; não é solicitado durante o carregamento normal da página |
| Lançado | Source Map format v3 (~2011); ubiquitous with modern JS/CSS build tooling |
| Padrão aberto | Sim · livre de royalties |
| Especificação | sourcemaps.info |
Conversões de MAP
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos MAP.