自定义扩展规则
功能介绍
考虑到用户会有特有的规则定义需求,Rsdoctor 除了内部已有的规则外,还提供了外部接口供用户定制自己的规则检查。外部扩展接口通过 extends 字段配置到 Rsdoctor 插件上,配置也放在 rules 字段内。
- 示例如下:
可按照下面自定义规则详细步骤进行规则定义及编写。
自定义规则 步骤
1. 安装
编写自定义规则时,除了安装基本的 @rsdoctor/rspack-plugin(@rsdoctor/webpack-plugin) 依赖,还需要安装 @rsdoctor/core 并使用 @rsdoctor/core/rules 中的 defineRule 函数来定义统一的 Rsdoctor 规则。
2. 编写规则
编写规则需要先使用defineRule函数,它内部输入一个函数,此函数返回一个固定格式的对象。参考按照如下实例:
其中,meta 字段为此规则的固定配置和内容,check 字段为包含规则检查具体逻辑的回调,它们的类型如下。
meta 对象
meta 类型定义查看:RuleMeta。
属性含义
- meta
- category
- info: 定义规则分类:编译规则或构建打包规则。
- type: 'compile' | 'bundle'。
- title
- info:规则标题,用于在 Rsdoctor 报告页面中展示。
- type:string | 泛型,用户可通过泛型下传。
- severity
- info: 规则等级。
- type: 参考下方 ErrorLevel 类型。
- default: 'Warn'
- defaultConfig
- info:规则默认配置。自定义规则中可能需要特有的配置,defaultConfig 可用于配置默认的规则配置。
- type:泛型,用户可通过泛型定义。如上面示例。
- referenceUrl
- info: 规则文档链接。
- type: string。
- category
check 函数
check 函数主要是用来做规则判断的,参数 ruleContext 是 Rsdoctor 在构建分析过程中所整合到的所有构建信息,类型定义如下。
可以在 check 函数的函数体内利用构建信息进行自定义的规则判断。判断后,如果规则检查出问题,可通过参数中的 report 方法进行上报,具体参见下一步。

