Rush Stack商店博客活动
跳至主要内容

API 提取器插件

插件包@rushstack/heft-api-extractor-plugin
插件名称api-extractor-pluginApiExtractorPlugin.ts 实现
插件配置文件api-extractor-task.json
heft.json 选项(无)

此插件调用 API 提取器 工具,该工具将 TypeScript 声明(.d.ts 文件)作为输入,并生成三种类型的输出

**1. API 报告** - API 提取器可以跟踪项目主入口点的所有导出,并生成一份报告,作为 API 审查工作流程的基础。

**2. .d.ts 卷积** - 类似于 **Webpack** 可以将所有 JavaScript 文件“卷积”成单个 .js 文件以供分发,API 提取器可以将 TypeScript 声明卷积成单个 .d.ts 文件。

**3. API 文档** - API 提取器可以为每个项目生成一个“文档模型” JSON 文件。此 JSON 文件包含提取的类型签名和文档注释。**api-documenter** 伴侣工具可以使用这些文件来生成 API 参考网站,或者您可以将它们用作自定义文档管道的输入。

有关其工作原理的详细信息,请参阅 API 提取器文档

何时使用它

我们建议为每个 TypeScript 库项目使用 API 提取器,特别是如果它作为 NPM 包发布。

package.json 依赖项

如果您使用的是标准 rig,例如 @rushstack/heft-node-rig@rushstack/heft-web-rig,则 API 提取器将已被加载和配置。

否则,您需要将这些包添加到您的项目中

# If you are using Rush, run this shell command in your project folder:
rush add --package @rushstack/heft-api-extractor-plugin --dev
rush add --package @microsoft/api-extractor --dev

配置

如果 API 提取器尚未由 rig 提供,您的 heft.json 配置文件 可以像此示例一样调用它

<项目文件夹>/config/heft.json

{
"$schema": "https://developer.microsoft.com/json-schemas/heft/v0/heft.schema.json",
. . .
"phasesByName": {
"build": {
"cleanFiles": [{ "sourcePath": "dist" }, { "sourcePath": "lib" }, { "sourcePath": "lib-commonjs" }],
"tasksByName": {
"typescript": {
"taskPlugin": {
"pluginPackage": "@rushstack/heft-typescript-plugin"
}
},
"api-extractor": {
"taskDependencies": ["typescript"],
"taskPlugin": {
"pluginPackage": "@rushstack/heft-api-extractor-plugin"
}
},
. . .
}
}
. . .
}
}

Heft 查找 API 提取器的配置文件 config/api-extractor.json。此文件可以通过调用 api-extractor init 命令创建。此文件是 可配置的

对于高级场景,可选的 api-extractor-task.json 配置文件提供了一些额外的 Heft 特定设置。

另请参阅