Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Сервисы Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022
Используйте расширения для улучшения Azure DevOps с новыми веб-интерфейсами, мини-приложениями панели мониторинга, задачами сборки и т. д. В этом руководстве вы узнаете, как создать и упаковывать простое веб-расширение.
Совет
Полный рабочий справочник см. в репозитории azure-devops-extension-sample .
Необходимые условия
| Категория | Требования |
|---|---|
| Разрешения | Владелец организации или член группы администраторов коллекции проектов . |
| Инструменты |
-
Node.js (рекомендуемая версия LTS) — средство упаковки расширений: запустите npm install -g tfx-cli , чтобы установить TFX CLI. |
Создание каталога и манифеста
Расширение — это набор файлов, включающих обязательный файл манифеста. Упаковите расширение в VSIX-файл и опубликуйте его в Visual Studio Marketplace.
Создайте каталог для расширения:
mkdir my-first-extension && cd my-first-extensionИнициализация манифеста пакета npm:
npm init -yУстановите пакет SDK расширения Azure DevOps:
npm install azure-devops-extension-sdk --saveЭтот пакет SDK предоставляет API для взаимодействия с фреймом узла Azure DevOps.
Создайте файл манифеста расширения с именем
vss-extension.jsonв корне каталога расширения со следующим содержимым:{ "manifestVersion": 1, "id": "my-first-extension", "publisher": "", "version": "1.0.0", "name": "My First Extension", "description": "A sample Azure DevOps extension", "public": false, "categories": ["Azure Repos"], "targets": [ { "id": "Microsoft.VisualStudio.Services" } ], "contributions": [ { "id": "my-hub", "type": "ms.vss-web.hub", "targets": [ "ms.vss-code-web.code-hub-group" ], "properties": { "name": "My Hub", "uri": "my-hub.html" } } ], "files": [ { "path": "my-hub.html", "addressable": true }, { "path": "node_modules/azure-devops-extension-sdk", "addressable": true, "packagePath": "lib" } ] }Это важно
Задайте для поля
publisherваш ID издателя в Marketplace. Свойствоpublicопределяет, отображается ли расширение всем пользователям в Visual Studio Marketplace. Сохраняйте закрытые расширения во время разработки.Создайте файл с именем
my-hub.htmlв корневом каталоге расширения со следующим содержимым. Эта HTML-страница является представлением (узлом) в рамках веб-интерфейса Azure DevOps.<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js"></script> <script> window.requirejs.config({ enforceDefine: true, paths: { 'SDK': './lib/SDK.min' } }); window.requirejs(['SDK'], function (SDK) { SDK.init(); SDK.ready().then(function () { document.getElementById("name").innerText = SDK.getUser().displayName; }); }); </script> <style> body { background-color: rgb(0, 67, 117); color: white; margin: 10px; font-family: "Segoe UI VSS (Regular)","-apple-system",BlinkMacSystemFont,"Segoe UI",sans-serif; } </style> </head> <body> <h1>Hello, <span id="name"></span></h1> </body> </html>Замечание
В этом примере для загрузки пакета SDK используется RequireJS, который работает без шага сборки. Для рабочих расширений используйте пакет, например webpack , с импортом модулей ES (
import * as SDK from "azure-devops-extension-sdk") для повышения производительности. См. пример использования расширения для конфигурации на основе webpack.Каталог расширений должен выглядеть следующим образом.
|-- my-hub.html |-- node_modules |-- @types |-- azure-devops-extension-sdk |-- package.json |-- vss-extension.jsonНужна помощь? Размещайте вопросы на сообществе разработчиков Azure DevOps Services.