Извлечь отдельный код файла javascript из уменьшенного файла

У меня есть список файлов .js, и у меня есть одна мини-версия этих файлов с исходной картой. Минимизированный файл был создан с использованием UglifyJS.

Можно ли извлечь код отдельных файлов js из минифицированного файла? может быть, прочитав исходную карту?

eg:

original files:
1)head.js
2)tail.js
3)stomach.js
4)liver.js

minified file (containing code of all of above files):
-> body.min.js

source map:
-> body.min.js.map

Можно ли извлечь минимизированный код (строку) желудка.js из body.min.js?


person Imraan Khan    schedule 16.03.2016    source источник
comment
Это интересный вопрос. Можете ли вы предоставить небольшой контекст? Вы боитесь, что кто-то еще реконструирует ваш код? Вы пытаетесь реконструировать чужой код? Вы потеряли исходные файлы и пытаетесь восстановить их из уменьшенных версий?   -  person JDB still remembers Monica    schedule 16.03.2016
comment
В основном я хочу сгенерировать код во время выполнения. окончательный код может не включать код из всех файлов. И я также хочу избежать минификации конечного кода.   -  person Imraan Khan    schedule 16.03.2016
comment
Тогда зачем объединять файлы в первую очередь? Я думаю, что извлечение кода будет намного дороже, чем его минимизация. Если вы минимизируете каждый файл по отдельности, разве это не даст вам лучшее из обоих миров? Вы можете комбинировать по мере необходимости без минимизации во время выполнения.   -  person JDB still remembers Monica    schedule 16.03.2016


Ответы (1)


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

https://gist.github.com/hooptie45/6f9a7e6251a120c8d2d04e75f9d73c0e#file-sourcemap-extract-rb

$ ./sourcemap-extract.rb site.com/assets/app.min.js.map ./tmp

person user407275    schedule 13.08.2016
comment
Это красивая вещь, спасибо! Помощь в спасении неудачного проекта, исходный код которого не был передан исходной команде, и это помогло нам восстановить исходный код на 95 %. - person Joshua; 19.01.2019