API 提取器插件
插件包 | @rushstack/heft-api-extractor-plugin |
插件名称 | api-extractor-plugin 由 ApiExtractorPlugin.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 提取器将已被加载和配置。
否则,您需要将这些包添加到您的项目中
- Rush
- NPM
# 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
# If you are using vanilla NPM, run this shell command in your project folder:
npm install @rushstack/heft-api-extractor-plugin --save-dev
npm install @microsoft/api-extractor --save-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 特定设置。
另请参阅
- config/api-extractor.json 为 Heft 配置文件
- API 提取器 网站