Разработка для SharePoint Framework с использованием SharePoint Server 2016 с пакетом дополнительных компонентов 2

SharePoint Server 2016 с пакетом дополнительных компонентов 2 поддерживает клиентские веб-части SharePoint Framework, размещенные на классических страницах SharePoint.

Введение в разработку SharePoint Framework в SharePoint Server 2016 с использованием пакета дополнительных компонентов 2 также представлено в следующем видео на канале сообщества платформы Microsoft 365 (PnP) на YouTube.

Выбор версии SharePoint Framework

Так как циклы выпуска новых возможностей для SharePoint Online и SharePoint Server 2016 различаются, возможности для работы с SharePoint Framework в них также различаются. SharePoint Online всегда использует последнюю версию SharePoint Framework, а SharePoint Server 2016 поддерживает только версию, соответствующую версии серверных зависимостей развернутых пакетов.

SharePoint Server 2016 с пакетом дополнительных компонентов 2 поддерживает клиентские веб-части SharePoint Framework, размещаемые на классических страницах SharePoint и создаваемые с помощью SharePoint Framework версии 1.1.0. Это означает, что когда вы ведете разработку для платформы SharePoint Server 2016, вам необходимо использовать SharePoint Framework версии 1.0.1 из-за зависимостей серверной версии.

Если вы планируете использовать одни клиентские веб-части и в SharePoint Server 2016, и в SharePoint Online, в качестве базовой версии необходимо использовать SharePoint Framework версии 1.1.0, чтобы веб-части работали в обеих средах.

Начиная с версии 1.3 генератор Yeoman для SharePoint Framework поддерживает формирование шаблонов решений на основе последней версии SharePoint Framework, предназначенных для SharePoint Online, а также решений на основе SharePoint Framework версии 1.1.0, которые можно использовать в локальном SharePoint. Вам не нужно устанавливать отдельную версию генератора Yeoman для SharePoint Framework для формирования шаблонов решений, предназначенных для локальной среды SharePoint.

Важно!

Начиная с версии 1.4 генератор Yeoman для SharePoint Framework поддерживает новый атрибут includeClientSideAssets, который позволяет дать указание включать ресурсы в пакет sppkg. Однако эта возможность не поддерживается в SharePoint Server 2016. Если решение предназначено для SharePoint Server 2016, для этого атрибута в файле ./config/package-solution.json необходимо установить значение false.

Размещение решение для локального развертывания

Развертывание клиентских веб-частей SharePoint Framework в локальной среде делится на два отдельных действия:

  • развернуть пакет решения в каталоге приложений SharePoint;
  • разместить файлы JavaScript в централизованном расположении.

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

  • Azure CDN: настройка выполняется аналогично настройке для SharePoint Online. Требуется, чтобы у пользователей было подключение к Интернету.
  • Локальный сервер в вашей сети: сервер, на котором размещены файлы JavaScript для вашей корпоративной сети. Сервер может быть основан на любой технологии, предоставляющей доступ к файлам с помощью HTTP-запросов.
  • SharePoint Server 2016: вы также можете размещать свои файлы в локальной ферме SharePoint. Например, вы можете определить стандартизированный сайт в своей ферме, на котором будут размещаться все ресурсы SharePoint Framework. Обратите внимание, что по умолчанию файлы JSON нельзя отправлять в библиотеки SharePoint Server 2016. Измените настройки уровня фермы, чтобы разрешить эту возможность.

Дополнительные сведения о заблокированных типах файлов в SharePoint Server 2016 см. в справочной статье Типы файлов, которые невозможно добавить в список или библиотеку.

Что необходимо учитывать при создании среды разработки

При разработке клиентских веб-частей SharePoint Framework требуется подключение к Интернету для доступа к пакетам npm. Это подключение необходимо при формировании шаблонов решений с помощью генератора Yeoman для SharePoint Framework.

Если на компьютерах, используемых для разработки, нет доступа к Интернету, вы можете настроить локальный реестр необходимых пакетов npm. Однако для этого требуется дополнительное программное обеспечение и время на настройку и поддержание соответствия версий локальных пакетов версиям в коллекции npm.

В документе с рекомендациями по разработке для SharePoint Framework в группах описаны различные варианты настройки среды разработки, включая сценарии, при которых необходима поддержка нескольких версий SharePoint Framework.

версии Node.js, Gulp & Yeoman

Зависимости для платформ, средств и связанных версий SPFx версии 1.1 не соответствуют аналогичной матрице зависимостей для последних версий SPFx. В таких случаях может потребоваться установка определенных версий средств.

Например, Gulp версии 3.* поддерживается только Node.js версии 10 и ниже, а Gulp версии 4.* — в Node.js версии 12 и выше. Так как SPFx версии 1.1 поддерживается только в Node.js версии 6 и Node.js версии 8, необходимо убедиться, что установлена более ранняя версия Node.js, а также более старая версия Gulp & Yeoman.

Примечание.

Команда Gulp представила отдельный пакет gulp-cli, который должен быть установлен глобально. Его можно использовать в проектах, использующих Gulp версии 3 & Gulp версии 4.

Дополнительные сведения о gulp-cli здесь: gulpjs/gulp/#2324.

Корпорация Майкрософт рекомендует использовать последнюю версию генератора Yeoman для SharePoint Framework(@microsoft/generator-sharepoint),которая поддерживает создание локальных проектов: SPFx версии 1.6.0.

Важно!

Генератор Yeoman для SharePoint Framework, начиная с версии 1.13.0, поддерживает только проекты для SharePoint Online. Дополнительные сведения об этом изменении см. в Заметках о выпуске SharePoint Framework версии 1.13. Однако SPFx 1.1.1 поддерживает Node.js только до версии 6. Следовательно, вам необходимо получить последнюю версию генератора Yeoman для SharePoint Framework (версии 1.6.0), который работает на той же версии Node.js (версии 6), на которой поддерживается SPFx версии 1.1.0.

  1. Установка Node.js версии 6.17.1

  2. Установка глобальных зависимостей

    npm install gulp-cli@2.3.0 --global
    npm install yo@2.0.0 --global
    npm install @microsoft/generator-sharepoint@1.6.0 --global
    

Дополнительные сведения см. в статье Совместимость средств разработки и библиотек SharePoint Framework.

Определение версии, используемой в решении

Если у вас есть решения SharePoint Framework, и вы хотите узнать, какие версии SharePoint Framework были использованы для этих решений, необходимо проверить указанные ниже расположения.

  • .yo-rc.json: файл в корневой папке решения, в котором хранится версия шаблона Yeoman для SharePoint Framework, использованная при создании решения.
  • package.json: файл в корневой папке решения, в котором содержатся ссылки на версии пакетов, использованных в решении.
  • npm-shrinkwrap.json: файл в корневой папке решения, в котором содержится информация об использованных точных версиях (если вы использовали команду npm shrinkwrap для фиксирования точных версий решения).
  • package.json: файл в папке node_modules/@microsoft/sp-webpart-base, который содержит атрибут version, соответствующий использованной версии SharePoint Framework, если вы установили пакеты в свое решение.

Устранение неполадок

Влияние Node.js версии 6, Node.js версии 8, HTTP1, & HTTP2

Приблизительно во время выпуска версии v1.1 выполнялось преобразование Node.js из версии v6.x в версию v8.x. В этом обновлении Node.js представлено изменение используемого по умолчанию протокола HTTP: вместо HTTP1 теперь используется HTTP2. Модель SPFx версии 1.1 создавалась для HTTP1, а не HTTP2, поэтому это изменение затрагивает локальный веб-сервер для проектов SPFx версии 1.1.

В Node.js v8.x можно принудительно применять HTTP1, установив следующую переменную среды, которая определит для Node.js использование HTTP1 вместо используемого по умолчанию HTTP2: NODE_NO_HTTP2=1. Эта переменная среды существует только в Node.js v8.x. Поэтому, если вы создаете решения SPFx для SharePoint Server 2016, следует использовать Node.js v8.x.

Эта проблема не влияет на более поздние версии SPFx, так как они обновлены для поддержки протоколов HTTP.

Подробнее см. раздел о проблеме 1002.

См. также