我正在编写一个代码分析Webpack插件来生成项目报告,该报告记录了一个通用模块(称为Obj)的所有调用。我希望我的插件分析项目的每个页面。
示例:
// I want to record openPage called in page xxx
Obj.openPage(url)
阅读webpack文档后,这是我得到的:
const PLUGIN_NAME = 'codeAnalyzePlugin'
class BusReportPlugin {
apply(compiler) {
compiler.hooks.compilation.tap(PLUGIN_NAME, (compilation, { normalModuleFactory }) => {
const handler = parser => {
parser.hooks.callAnyMember.tap(PLUGIN_NAME, expression => {
// not emit
})
}
normalModuleFactory.hooks.parser
.for("javascript/auto")
.tap(PLUGIN_NAME, handler)
normalModuleFactory.hooks.parser
.for("javascript/dynamic")
.tap(PLUGIN_NAME, handler)
normalModuleFactory.hooks.parser
.for("javascript/esm")
.tap(PLUGIN_NAME, handler)
})
}
问题:
或者有什么简单的方法可以帮助我解决问题