Как веб-браузеры находят исходную карту для файла JavaScript?

В следующей статье объясняется, что для того, чтобы найти исходную карту файла JavaScript, такого как jQuery, веб-браузер ищет код JavaScript и ищет строку, содержащую sourceMappingURL директива, встроенная в комментарий JavaScript. Например, минимизированный файл jQuery 1.9.0 содержит такую ​​директиву в конце файла. Однако более поздний минимизированный дистрибутив jQuery 1.11.1 не содержит такой директивы, но файл карты jQuery 1.11.1 также распространяется с этой (окончательной стабильной версией jQuery 1). Итак, как веб-браузер находит файл карты для минимизированного файла.

Я думаю, что соглашение о веб-браузерах, ищущих sourceMappingURL директива была отброшена в пользу следования соглашению об именовании поиска файла с тем же именем, с .js заменен на .min, Это то, что случилось?

Согласно документации для недавно выпущенной версии Firefox Developer Edition, такой браузер все еще ищет директиву sourceMappingURL.

Благодарю.

1 ответ

Решение

Причина отказа от сопоставления исходного кода из последних версий описана в блоге JQuery.

Этот выпуск не содержит комментарий к исходной карте в минимизированном файле. Sourcemaps оказались очень проблематичной и загадочной для разработчиков, порождая сотни запутанных разработчиков на таких форумах, как Stackru, и заставляют некоторых думать, что сам jQuery не работает.

Мы по-прежнему будем генерировать и распространять исходные карты, но вам нужно будет добавить соответствующий комментарий исходной карты в конце уменьшенного файла, если браузер не поддерживает ручное сопоставление файлов карт (в настоящее время никто этого не делает). Если вы сгенерируете свой собственный файл jQuery с использованием пользовательского процесса сборки, комментарий к исходной карте будет представлен в минимизированном файле, и карта будет сгенерирована; Вы можете оставить его и использовать исходные карты или отредактировать его и полностью игнорировать файл карты.

Мы надеемся вернуть и улучшить поддержку исходных карт в будущем, но на данный момент ни дизайн, ни реализация не кажутся подходящими для ситуаций, подобных jQuery, где широко распространены файлы в CDN. Мы бы хотели, чтобы исходные карты (и поддерживающие их браузеры) изящно обрабатывали такие ситуации, как переименование файлов или пропущенные файлы. Смотрите наш билет ошибки для получения дополнительной информации.

Другие вопросы по тегам