Я пытаюсь выяснить, как извлечь некоторую информацию из babel
процесса компиляции.
В частности, когда я запускаю babel
(независимо от того, использую ли Webpack babel-loader
), тестовые фреймворки трансформеры, CLI Babel и т. д.) мне нужно извлечь некоторую информацию для каждого скомпилированный файл. Нравиться:
- Путь к файлу
- время, затраченное на компиляцию
- любые другие метаданные?
Что я пробовал до сих пор
Плагин Speed Measure для Webpack (ссылка)
Работает нормально, но обеспечивает только время работы загрузчиков Webpack. Нет информации об отдельных скомпилированных файлах.
Подключитесь к экземпляру компилятора/компиляции Webpack
Я решил написать плагин Webpack для подключения к процесс компиляции, как описано здесь, но я не смог найти подходящие хуки для распознавания файла, обработано babel
.
Обновления
Думаю, @kidroca указал правильное направление. В частности, я понимаю, что параметр Babel wrapPluginVisitorMethod
является ключом к подключению к процессу компиляции Babel.
См. плагин синхронизации от babel-minify
.
Связанные темы:
- https://github.com/babel/babel/issues/5340
- https://github.com/babel/babel/issues/2206
- https://github.com/babel/babel/pull/3659
- https://github.com/babel/minify/pull/93
- https://github.com/babel/babel/pull/3659
Обновления 28.04.18
В конце концов я попытался обернуть решение в инструмент, который назвал babel-timing а>.
babel.transform
. Втисните логику измерений прямо в исходный код babel, если это возможно. - person hackape   schedule 08.04.2019babel-minify
кажутся подходящим способом для прослушивания внутри Babel. Я не уверен, можно ли передатьwrapPluginVisitorMethod
из внешней конфигурации, такой как .babelrc. Если это возможно, это позволит вам интегрировать этот тест/анализ без модификации кода babel и запускать его для любого проекта, использующего babel. - person kidroca   schedule 15.04.2019