Recentemente, vi arquivos com .js.map
extensão enviados com algumas bibliotecas JavaScript (como Angular ), e isso apenas levantou algumas questões na minha cabeça:
- Para que serve? Por que os funcionários da Angular se preocupam em entregar um
.js.map
arquivo? - Como posso (como desenvolvedor de JavaScript) usar o
angular.min.js.map
arquivo? - Devo me preocupar em criar
.js.map
arquivos para meus aplicativos JavaScript? - Como é criado? Dei uma olhada
angular.min.js.map
e ela estava cheia de strings de formato estranho, então suponho que não foi criada manualmente.
javascript
angularjs
source-maps
Muhammad Reda
fonte
fonte
Respostas:
Os
.map
arquivos são parajs
ecss
(e agorats
também) arquivos que foram minificados. Eles são chamados de SourceMaps. Quando você reduz um arquivo, como o arquivo angular.js, ele pega milhares de linhas de código bonito e o transforma em apenas algumas linhas de código feio. Felizmente, ao enviar seu código para produção, você está usando o código minificado em vez da versão completa e não minificada. Quando o aplicativo está em produção e apresenta um erro, o mapa de origem ajuda a obter seu arquivo feio e permite que você veja a versão original do código. Se você não tivesse o mapa de origem, qualquer erro pareceria enigmático.O mesmo para arquivos CSS. Depois de pegar um arquivo SASS ou MENOS e compilá-lo em CSS, ele não se parece em nada com sua forma original. Se você ativar mapas de origem, poderá ver o estado original do arquivo, em vez do estado modificado.
Então, para responder às perguntas em ordem:
Espero que isto faça sentido.
fonte
.js.map
arquivo não mantém uma relação (muitas vezes chamada de referência ) entre o arquivo artesanal e um arquivo compactado?Só queria focar na última parte da pergunta; Como os arquivos de mapas de origem são criados? listando as ferramentas de construção que eu sei que podem criar mapas de origem.
grunt-contrib-uglify
gulp-uglify
--create_source_map
fonte
Não encontrei resposta para isso nos comentários, aqui está como pode ser usado:
As ferramentas de minifactação (boas) adicionam um comentário ao seu arquivo .min.js .
// # sourceMappingURL = yourFileName.min.js.map
que conectará seu arquivo .map .
Quando os min.js e js.map arquivos estão prontos ...
fonte
O arquivo de mapa mapeia o arquivo não minificado para o arquivo minificado. Se você fizer alterações no arquivo não minificado, as alterações serão refletidas automaticamente na versão minificada do arquivo.
fonte
Apenas para adicionar como usar arquivos de mapa. Eu uso o chrome para o ubuntu e, se eu for para fontes e clicar em um arquivo, se houver um arquivo de mapa, uma mensagem será exibida informando que eu posso ver o arquivo original e como fazê-lo.
Para os arquivos angulares com os quais trabalhei hoje, clico
Posso navegar pela lista para visualizar o arquivo que gostaria de inspecionar e verificar onde o problema pode estar.
fonte