Что проверяет этот инструмент
Большая часть веба всё ещё отдаёт продукт webpack, и его структуру стоит понимать саму по себе — отдельно от общего, не зависящего от сборщика графа зависимостей, который строит Визуализатор Зависимостей JS-бандла. Этот инструмент ищет именно составные части бандла webpack:
- Загрузчик рантайма — функция в форме
__webpack_require__, которую несёт каждая сборка webpack, обнаруживается по точному механизму вызова модуля (modules[moduleId].call(module.exports, module, module.exports, require)), а не поиском буквального имени. Этот механизм переживает полное переименование идентификаторов, так что он срабатывает и в сборке, где все имена минифицированы. - Карта модулей — либо в классической форме объекта (
{0: fn, 1: fn, ...}), либо в форме массива ([fn, fn, ...]), которую по умолчанию используют более новые версии webpack. - Метаданные chunk-push — для сборок с разбиением кода вызов
(self.webpackChunkXxx = self.webpackChunkXxx || []).push([[chunkIds], {modules}, runtime]), из которого извлекаются имя и id чанка. - Вспомогательные функции рантайма — какие из
.m(карта модулей),.c(кэш модулей),.d(define getter),.o(hasOwnProperty),.n(getter экспорта по умолчанию),.s(id входного модуля) и.p(публичный путь) присутствуют.
Выберите любой модуль в списке, чтобы увидеть его реальный исходный код в панели с подсветкой синтаксиса — без выполнения, только текст, который сам webpack обернул вокруг этого модуля.
Когда это не webpack
Если не найдены ни рантайм, ни карта модулей, инструмент сообщает «это не похоже на продукт webpack» вместо навязывания догадки и добавляет простую честную подсказку, если она доступна — комментарий //# sourceMappingURL= или то, что файл разбирается как ES-модуль (типично для продукта Rollup, esbuild и Vite).
Известное ограничение
Бандл, прошедший через webpack, а затем через второй, более агрессивный проход минификации, который переименовывает и имена свойств самого рантайма, может проскочить мимо проверки формы .call() и быть отмечен как не-webpack. Это осознанный компромисс: редкий ложноотрицательный результат лучше, чем выдумывание карты модулей, которой на самом деле нет.
Приватность
Всё выполняется в браузере через настоящий парсер JavaScript (acorn). Вставленный или загруженный файл никуда не отправляется.
Tiny Online Tools







