Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Сервисы 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.