Вавилонская ловушка, которая запускается после обработки всех файлов? - PullRequest
1 голос
/ 30 апреля 2019

В плагинах Babel есть хук post, который запускается после обработки одного файла JS. Тем не менее, я хочу запустить некоторый код после обработки всех файлов JS. Возможно ли это?

На данный момент я только что добавил новый плагин, который запускается после первого, но он будет чище, если они будут одним плагином.

1 Ответ

2 голосов
/ 30 апреля 2019

Короткий ответ: Babel не предоставляет такой хук, потому что базовая система преобразования Babel запускает один файл за раз. Весь API:

babel.transform("var foo; /* some code */", { filename: "foo.js" });

, поэтому он не может зарегистрировать что-либо, что будет работать после обработки группы файлов.

Более длинный ответ заключается в том, что, если вы используете Webpack специально, вы можете использовать Babel в сочетании с плагином Webpack для сбора метаданных из каждого отдельного файла, а затем выполнить какое-либо действие со всеми этими метаданными, но это Особенность Webpack / babel-loader. Примером одного такого плагина Webpack является react-intl-webpack-plugin, который в паре с babel-plugin-react-intl.

...