В предыдущей статье мы рассмотрели конструкцию JavaScript, необходимую для платформы SharePoint Framework. На этот раз речь пойдет о завершении процесса. Мы построили веб-часть или элемент управления, и теперь нужно ввести этот компонент в SharePoint Online.

Вся конструкция платформы построена на идее автоматизированных задач, которые могут быть определены и использоваться не только для компиляции, но и для подготовки необходимого файла веб-части. Создав проект, вы можете выполнить команды gulp для компиляции и построения программного кода. В результате все становится более компактным и объединяется с использованием веб-компонентов.

Прежде чем начать, я использую такие версии компонентов, как показано на экране 1.

 

Версии используемых
Экран 1. Версии используемых

Команда gulp — ship возвращает подтверждение целостности иерархии на консоль (экран 2).

 

Развертывание компонентов
Экран 2. Развертывание компонентов

Теперь вернемся к нашему редактору. Это может быть Atom, vscode или некоторое количество редакторов. Вы можете увидеть новую папку с именем temp, которая создается и заполняется. При развертывании папки temp отображается папка deploy, которая содержит вновь скомпилированные файлы (экран 3).

 

Содержимое папки deploy
Экран 3. Содержимое папки deploy

Местоположение этих файлов, сохраняемых после создания, определяется файлом с именем prepare-deploy.json. Он содержит свойство deployCdnPath, как раз и указывающее на местоположение (экран 4).

 

Свойство deployCdnPath указывает местоположение
Экран 4. Свойство deployCdnPath указывает местоположение

При необходимости это значение можно изменить, но пока мы оставим его в качестве выбираемого по умолчанию. Команда gulp только выдает необходимые файлы, которые нужно где-нибудь разместить, но не создает пакет SharePoint, подлежащий развертыванию. Сделать это можно с помощью gulp package-solution. После завершения отображается полный вывод пакета на консоли (экран 5).

 

Создание пакета SharePoint для развертывания
Экран 5. Создание пакета SharePoint для развертывания

Возвращаясь к редактору, можно увидеть другую созданную папку с именем sharepoint. Прежде чем кто-нибудь попытается исправить ошибку, замечу, что здесь действительно все буквы строчные, без прописных (экран 6).

 

Вид созданной папки в редакторе
Экран 6. Вид созданной папки в редакторе

Самый важный новый компонент — файл. spapp, который представляет собой элемент, необходимый для развертывания в каталоге приложений на сайте SharePoint Online.

Следующий шаг — скопировать компоненты в нужное место, но для начала необходимо определить окончательный cdnBasePath и повторно выполнить компиляцию, чтобы обеспечить корректность ссылок. Измените файл с именем write-manifest.json и введите местоположение SharePoint Online, где предстоит сохранять вспомогательные файлы.

На своем сайте я просто добавил папку в библиотеку материалов. Очевидно, есть более подходящие способы хранения материалов, например задействовать настоящую сеть доставки содержимого (CDN), а не сайт SharePoint, если только вы не используете новый компонент CDN Azure или Office 365.

Затем нужно выполнить действия, описанные в предыдущих статьях о настройке CDN в Office 365.

Последнее значение должно быть приблизительно как на экране 7, что является общедоступным URL-адресом CDN, а не прямым URL-адресом SharePoint для используемого вами расположения.

 

Общедоступный URL-адрес CDN
Экран 7. Общедоступный URL-адрес CDN

Теперь требуется выполнить команды gulp bundle — ship и gulp package-solution — ship, чтобы сформировать все элементы с корректными ссылками. Затем мы передаем файлы из папки temp/deploy в расположение SharePoint (экран 8).

 

Формирование элементов с корректными ссылками
Экран 8. Формирование элементов с корректными ссылками

Далее, располагая вспомогательными элементами, можно перейти в каталог приложений для нашего сайта и передать файл. spapp. Получив запрос после передачи, убедитесь в правильности настроек для окна deploy (экран 9).

 

Вид окна развертывания
Экран 9. Вид окна развертывания

Представленный URL-адрес должен соответствовать URL-адресу CDN, добавленному к cdnBasePath в файле с именем write-manifest.json. Теперь можно перейти к одному из семейств веб-сайтов и выбрать пункт Add an App («Добавить приложение»), а затем обратиться к Apps from your organization («Приложения из вашей организации») и выбрать приложение. Далее можно изменить страницу и добавить новую веб-часть.

Если на данном этапе вы получаете сообщение об ошибке, проверьте URL-адрес, повторите построение, развертывание и тестирование. Конечно, возникает вопрос, каким образом полностью автоматизировать процесс развертывания. Вы можете обратиться к gulp-spsync Виктора Уилена в репозитории GitHub (https://github.com/wictorwilen/gulp-spsync). Или к gulp-propellor и gulp propeller-sharepoint, которые можно найти в следующих документах: https://github.com/oldrivercreative/propeller и https://github.com/oldrivercreative/propeller-sharepoint.

В результате процесс gulp дополняется новыми задачами, которые можно запускать в процессе компиляции.