Visual Studio Team Services 扩展示例教程
1. 项目的目录结构及介绍
vsts-extension-samples/
├── analytics-example-widget/
├── backlogs-panel/
├── build-inspector/
├── build-results-enhancer/
├── calendar-public-events/
├── charts/
├── contributions-guide/
├── custom-content-renderer/
├── dashboard-manager/
├── data-storage/
├── fabrikam-build-extension/
├── preview-features/
├── release-management/
├── LICENSE
├── README.md
├── SECURITY.md
└── ...
- analytics-example-widget: 分析示例小部件。
- backlogs-panel: 待办事项面板。
- build-inspector: 构建检查器。
- build-results-enhancer: 构建结果增强器。
- calendar-public-events: 公共事件日历。
- charts: 图表。
- contributions-guide: 贡献指南。
- custom-content-renderer: 自定义内容渲染器。
- dashboard-manager: 仪表板管理器。
- data-storage: 数据存储。
- fabrikam-build-extension: Fabrikam 构建扩展。
- preview-features: 预览功能。
- release-management: 发布管理。
- LICENSE: 许可证文件。
- README.md: 项目说明文件。
- SECURITY.md: 安全说明文件。
2. 项目的启动文件介绍
每个示例扩展的启动文件可能不同,但通常会包含一个 index.ts
或 index.js
文件作为入口点。例如,在 analytics-example-widget
目录下,可能会有一个 index.ts
文件:
import * as SDK from "azure-devops-extension-sdk";
import { CommonServiceIds, IHostPageLayoutService } from "azure-devops-extension-api";
SDK.init();
SDK.ready().then(async () => {
const layoutService = await SDK.getService<IHostPageLayoutService>(CommonServiceIds.HostPageLayoutService);
await layoutService.setFullScreenMode(true);
});
3. 项目的配置文件介绍
每个扩展通常会有一个 vss-extension.json
文件,用于定义扩展的元数据和配置。例如:
{
"manifestVersion": 1,
"id": "analytics-example-widget",
"version": "1.0.0",
"name": "Analytics Example Widget",
"description": "An example widget for analytics",
"publisher": "MYPUBLISHERID",
"targets": [
{
"id": "Microsoft.VisualStudio.Services"
}
],
"contributions": [
{
"id": "analytics-example-widget",
"type": "ms.vss-dashboards-web.widget",
"targets": [
"ms.vss-dashboards-web.widget-catalog"
],
"properties": {
"name": "Analytics Example Widget",
"description": "An example widget for analytics",
"uri": "index.html"
}
}
],
"files": [
{
"path": "index.html",
"addressable": true
},
{
"path": "dist",
"addressable": true
}
]
}
这个配置文件定义了扩展的ID、版本、名称、描述、发布者以及贡献点和其他文件的路径。