Подтвердить что ты не робот

Почему встроенные исходные карты?

Сегодня я узнал, что включить исходные карты непосредственно в ваш файл с мини-кодом JavaScript вместо того, чтобы иметь их в отдельном файле example.min.map. Интересно: почему кто-то хочет сделать что-то вроде этого?

Преимущество использования исходных карт для меня ясно: можно, например, отлаживать ошибки с исходными несжатыми исходными файлами при запуске мини файлов. преимущество минимизации также четкое: размер исходных файлов значительно снижается, что ускоряет загрузку браузеров.

Итак, почему на Земле я хотел бы включить исходные карты в миниатюрный файл, учитывая, что карты имеют размер, даже больше, чем сам минитипированный код?

4b9b3361

Ответ 1

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

Рациональным для построения исходных карт с вашими мини файлами является то, что браузер анализирует тот же JavaScript в разработке и производстве. Некоторый minifiers как Closure Compiler делает больше, чем "просто" минимизирует код. Используя расширенные параметры он также может выполнять такие действия, как удаление мертвого кода, встраивание функций или переименование агрессивной переменной. Это делает мини-код (потенциально) функционально отличным от исходного файла.

Это все равно можно сделать, ссылаясь на внешние файлы исходных карт, конечно, но некоторые люди предпочитают встраивать их процесс сборки.

Ответ 2

Если вы используете удаленную отладку Chrome на устройстве Android, отладчик Chrome не может просто получить доступ к любому файлу, который он хочет на устройстве, и который включает в себя отдельные файлы карт. Если вы включите их в строку, у вас нет этой проблемы.

Ответ 3

Инструменты связывания JS, такие как Browserify или Webpack, свяжут все ваши файлы .js с одним или несколькими пучками даже в режиме разработки. Поэтому в этом случае добавление исходной исходной карты в сгенерированные пакеты - самый простой способ помочь отладке, не принося дополнительные файлы.

Ответ 4

В некоторых ситуациях вам может потребоваться включить встроенные исходные коды в оцениваемый код. Например, у вас есть поле ввода coffeescript, и вы хотите включить debbuging код в coffeescript. Существует вопрос stackoverflow об исходных картах в оцениваемом коде:

Получение исходных карт, работающих с оцененным кодом

Вы можете включить @sourceURL в свои комментарии, чтобы указать URL-адрес вашего кода eval и загрузить файл карты (см. стр. 8 из SourceMap Spec 3). Но не всегда возможно записывать файлы в какое-то место.

Ответ 5

cheap-module-source-map намного лучше для сборки сборки.

inline-source-map используется для быстрой и грязной сборки при тестировании