Недавно я видел файлы с .js.map
расширением, поставляемые с некоторыми библиотеками JavaScript (например, Angular ), и это вызвало у меня несколько вопросов:
- Для чего это? Почему ребята из Angular стараются доставить
.js.map
файл? - Как я могу (как разработчик JavaScript) использовать
angular.min.js.map
файл? - Должен ли я заботиться о создании
.js.map
файлов для моих приложений JavaScript? - Как это создается? Я посмотрел,
angular.min.js.map
и он был заполнен странно отформатированными строками, поэтому я предполагаю, что он не был создан вручную.
javascript
angularjs
source-maps
Мухаммед Реда
источник
источник
Ответы:
Эти
.map
файлы предназначеныjs
иcss
(и сейчасts
тоже) файлы , которые были минимизированы. Они называются SourceMaps. Когда вы минимизируете файл, такой как файл angular.js, он берет тысячи строк красивого кода и превращает его в несколько строк ужасного кода. Надеемся, что когда вы отправляете свой код в производство, вы используете сокращенный код вместо полной, неунифицированной версии. Когда ваше приложение находится в рабочем состоянии и имеет ошибку, исходная карта поможет взять ваш уродливый файл и позволит вам увидеть исходную версию кода. Если у вас нет исходной карты, то любая ошибка в лучшем случае покажется загадочной.То же самое для файлов CSS. Как только вы берете файл SASS или LESS и компилируете его в CSS, он выглядит совсем не так, как в оригинальной форме. Если вы включите исходные карты, то вы можете увидеть исходное состояние файла, а не измененное состояние.
Итак, отвечу на ваши вопросы по порядку:
Я надеюсь это имеет смысл.
источник
.js.map
файл не поддерживает связь (часто называемую ссылкой ) между созданным вручную файлом и уменьшенным файлом?Просто хотел сосредоточиться на последней части вопроса; Как создаются файлы исходных карт? перечисляя инструменты сборки, я знаю, что можно создавать исходные карты.
grunt-contrib-uglify
gulp-uglify
--create_source_map
источник
Я не нашел ответа на это в комментариях, вот как можно использовать:
Инструменты минифиакции (хорошие) добавляют комментарий к вашему файлу .min.js :
// # sourceMappingURL = yourFileName.min.js.map
который соединит ваш файл .map .
Когда файлы min.js и js.map будут готовы ...
источник
Файл карты отображает незавершенный файл в уменьшенный файл. Если вы внесете изменения в неинициализированный файл, изменения будут автоматически отражены в минимизированной версии файла.
источник
Просто чтобы добавить, как использовать файлы карт. Я использую Chrome для Ubuntu, и если я захожу в исходники и нажимаю на файл, если есть файл карты, появляется сообщение о том, что я могу просмотреть исходный файл и как это сделать.
Для файлов Angular, с которыми я работал сегодня, я нажимаю
Затем я могу просмотреть список, чтобы просмотреть файл, который я хотел бы проверить, и проверить, где может быть проблема.
источник