parser
实例,是用来解析由 webpack 处理过的每个模块。parser
也是扩展自 tapable
的 webpack 类,并且提供多种 tapable
钩子,插件作者可以使用它来自定义解析过程。
以下示例中,parser
位于 normalModuleFactory 这个中,因此需要调用额外钩子来进行获取:
compiler.hooks.normalModuleFactory.tap('MyPlugin', factory => {
factory.hooks.parser.for('javascript/auto').tap('MyPlugin', (parser, options) => {
parser.hooks.someHook.tap(/* ... */);
});
});
和 compiler
用法相同,取决于不同的钩子类型,也可以在某些钩子上访问 tapAsync
和 tapPromise
。
以下生命周期钩子函数,是由 parser
暴露,可以通过如下方式访问:
SyncBailHook
取值标识符(identifier)的类型。(译注:取值(evaluate)是一个动词,表示对参数进行求值并返回)
参数:expression
SyncBailHook
取值一个表达式(expression)
参数:expression
SyncBailHook
取值一个自由变量标识符。
参数:expression
SyncBailHook
取值一个定义变量标识符。
参数:expression
SyncBailHook
进行一次「成功取值表达式的成员函数(member function of a successfully evaluated expression)」调用取值。
参数:expression
param
SyncBailHook
通用钩子,在从代码片段中解析语句时调用。
参数:statement
SyncBailHook
...
参数:statement
SyncBailHook
...
参数:statement
SyncBailHook
...
参数:statement
source
SyncBailHook
...
参数:statement
source
exportName
identifierName
SyncBailHook
...
参数:statement
SyncBailHook
...
参数:statement
source
SyncBailHook
...
参数:statement
declaration
SyncBailHook
...
参数:statement
declaration
SyncBailHook
...
参数:statement
identifierName
exportName
index
SyncBailHook
...
参数:statement
source
identifierName
exportName
index
SyncBailHook
...
参数:declaration
SyncBailHook
...
参数:declaration
SyncBailHook
...
参数:declaration
SyncBailHook
...
参数:declaration
SyncBailHook
...
参数:initExpression
SyncBailHook
...
参数:initExpression
SyncBailHook
...
参数:expression
SyncBailHook
...
参数:expression
SyncBailHook
...
参数:expression
SyncBailHook
...
参数:expression
SyncBailHook
...
参数:expression
SyncBailHook
...
参数:expression
SyncBailHook
...
参数:expression
SyncBailHook
...
参数:expression
SyncBailHook
...
参数:expression
SyncBailHook
访问代码片段的抽象语法树(abstract syntax tree - AST)
参数:ast
comments