Récemment, j'ai vu des fichiers avec une .js.map
extension livrés avec certaines bibliothèques JavaScript (comme Angular ), et cela vient de soulever quelques questions dans ma tête:
- Pourquoi est-ce? Pourquoi les gars d'Angular s'occupent-ils de livrer un
.js.map
dossier? - Comment puis-je (en tant que développeur JavaScript) utiliser le
angular.min.js.map
fichier? - Dois-je me soucier de créer des
.js.map
fichiers pour mes applications JavaScript? - Comment est-il créé? J'ai jeté un coup d'œil
angular.min.js.map
et il était rempli de chaînes au format étrange, donc je suppose qu'il n'est pas créé manuellement.
javascript
angularjs
source-maps
Muhammad Reda
la source
la source
Réponses:
Les
.map
fichiers sont pourjs
etcss
(et maintenantts
aussi) les fichiers qui ont été minifiés. Ils sont appelés SourceMaps. Lorsque vous réduisez un fichier, comme le fichier angular.js, cela prend des milliers de lignes de joli code et le transforme en seulement quelques lignes de code laid. Avec un peu de chance, lorsque vous expédiez votre code en production, vous utilisez le code minifié au lieu de la version complète non minifiée. Lorsque votre application est en production et présente une erreur, le sourcemap vous aidera à prendre votre vilain fichier et vous permettra de voir la version originale du code. Si vous n'aviez pas le sourcemap, toute erreur semblerait au mieux cryptée.Idem pour les fichiers CSS. Une fois que vous prenez un fichier SASS ou LESS et que vous le compilez en CSS, il ne ressemble en rien à sa forme originale. Si vous activez les sourcemaps, vous pouvez voir l'état d'origine du fichier, au lieu de l'état modifié.
Donc, pour répondre à vos questions dans l'ordre:
J'espère que cela a du sens.
la source
.js.map
fichier ne maintient- il pas une relation (souvent appelée référence ) entre un fichier fabriqué à la main et un fichier minifié?Je voulais juste me concentrer sur la dernière partie de la question; Comment les fichiers de carte source sont-ils créés? en listant les outils de construction que je connais qui peuvent créer des cartes sources.
grunt-contrib-uglify
gulp-uglify
--create_source_map
la source
Je n'ai pas trouvé de réponse à cela dans les commentaires, voici comment l'utiliser:
Les outils de minifiacation (bons) ajoutent un commentaire à votre fichier .min.js :
// # sourceMappingURL = yourFileName.min.js.map
qui connectera votre fichier .map .
Lorsque les fichiers min.js et js.map sont prêts ...
la source
Le fichier de mappage mappe le fichier non réduit au fichier réduit. Si vous apportez des modifications dans le fichier non réduit, les modifications seront automatiquement répercutées sur la version réduite du fichier.
la source
Juste pour ajouter à la façon d'utiliser les fichiers de carte. J'utilise Chrome pour Ubuntu et si je vais aux sources et que je clique sur un fichier, s'il y a un fichier de carte, un message apparaît me disant que je peux voir le fichier d'origine et comment le faire.
Pour les fichiers angulaires avec lesquels j'ai travaillé aujourd'hui, je clique
Je peux ensuite parcourir la liste pour voir le fichier que j'aimerais inspecter et vérifier où le problème pourrait être.
la source