#javascript #webpack #babeljs #abstract-syntax-tree
#javascript #webpack #babeljs #абстрактное синтаксическое дерево
Вопрос:
Я пытаюсь написать плагин webpack, и я подключаюсь к CallExpressions
на parser
.
Как я могу узнать, какому файлу принадлежит текущий CallExpression
?
compiler.hooks.normalModuleFactory.tap("MyWebpackPlugin", (factory) => {
factory.hooks.parser
.for("javascript/auto")
.tap("MyWebpackPlugin", (parser, options) => {
parser.hooks.evaluate
.for("CallExpression")
.tap("MyWebpackPlugin", (callExpression) => {
//
// How can I find the file where this CallExpression occurred?
//
});
});
});
Ответ №1:
Я думаю, что я решил это с помощью следующего кода:
compiler.hooks.normalModuleFactory.tap("MyPlugin", (factory) => {
factory.hooks.createModule.tap("MyPlugin", (module) => {
if (!module.parser.hooks) {
return;
}
module.parser.hooks.evaluate
.for("CallExpression")
.tap("MyPlugin", (callExpression) => {
console.log(">>> CallExpression");
console.log(module.request);
});
});
});