返回介绍

parser

发布于 2019-05-27 04:54:18 字数 6974 浏览 1091 评论 0 收藏 0

parser 实例,是用来解析由 webpack 处理过的每个模块。parser 也是扩展自 tapable 的 webpack 类,并且提供多种 tapable 钩子,插件作者可以使用它来自定义解析过程。

以下示例中,parser 位于 normalModuleFactory 这个中,因此需要调用额外钩子来进行获取:

compiler.hooks.normalModuleFactory.tap(factory => {
  factory.hooks.parser.tap((parser, options) => {
    parser.hooks.someHook.tap(...)
  })
})

compiler 用法相同,取决于不同的钩子类型,也可以在某些钩子上访问 tapAsynctapPromise

相关钩子

以下生命周期钩子函数,是由 parser 暴露,可以通过如下方式访问:

evaluateTypeof

SyncBailHook

取值标识符(identifier)的类型。(译注:取值(evaluate)是一个动词,表示对参数进行求值并返回)

参数:expression

evaluate

SyncBailHook

取值一个表达式(expression)

参数:expression

evaluateIdentifier

SyncBailHook

取值一个自由变量标识符。

参数:expression

evaluateDefinedIdentifier

SyncBailHook

取值一个定义变量标识符。

参数:expression

evaluateCallExpressionMember

SyncBailHook

进行一次「成功取值表达式的成员函数(member function of a successfully evaluated expression)」调用取值。

参数:expression param

statement

SyncBailHook

通用钩子,在从代码片段中解析语句时调用。

参数:statement

statementIf

SyncBailHook

...

参数:statement

label

SyncBailHook

...

参数:statement

import

SyncBailHook

...

参数:statement source

importSpecifier

SyncBailHook

...

参数:statement source exportName identifierName

export

SyncBailHook

...

参数:statement

exportImport

SyncBailHook

...

参数:statement source

exportDeclaration

SyncBailHook

...

参数:statement declaration

exportExpression

SyncBailHook

...

参数:statement declaration

exportSpecifier

SyncBailHook

...

参数:statement identifierName exportName index

exportImportSpecifier

SyncBailHook

...

参数:statement source identifierName exportName index

varDeclaration

SyncBailHook

...

参数:declaration

varDeclarationLet

SyncBailHook

...

参数:declaration

varDeclarationConst

SyncBailHook

...

参数:declaration

varDeclarationVar

SyncBailHook

...

参数:declaration

canRename

SyncBailHook

...

参数:initExpression

rename

SyncBailHook

...

参数:initExpression

assigned

SyncBailHook

...

参数:expression

assign

SyncBailHook

...

参数:expression

typeof

SyncBailHook

...

参数:expression

call

SyncBailHook

...

参数:expression

callAnyMember

SyncBailHook

...

参数:expression

new

SyncBailHook

...

参数:expression

expression

SyncBailHook

...

参数:expression

expressionAnyMember

SyncBailHook

...

参数:expression

expressionConditionalOperator

SyncBailHook

...

参数:expression

program

SyncBailHook

访问代码片段的抽象语法树(abstract syntax tree - AST)

参数:ast comments

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文