SharePoint-Framework-Entwicklung mit SharePoint Server 2016 Feature Pack 2
SharePoint Server 2016 Feature Pack 2 unterstützt clientseitige Webparts des SharePoint-Frameworks, die auf klassischen SharePoint-Seiten gehostet werden.
Eine Einführung in die SharePoint-Framework-Entwicklung in SharePoint Server 2016 mit dem Feature Pack 2 finden Sie auch im folgenden Video im YouTube-Kanal Microsoft 365 Platform Community (PnP).
Zu verwendende Version von SharePoint-Framework
Da SharePoint Online und SharePoint Server 2016 unterschiedliche Versionszyklen für neue Funktionen haben, verfügen sie auch über verschiedene Funktionen im Hinblick auf SharePoint-Framework. SharePoint Online verwendet immer die neueste Version von SharePoint-Framework, SharePoint Server 2016 unterstützt jedoch nur die Version, die mit den serverseitigen Abhängigkeiten der bereitgestellten Pakete übereinstimmt.
SharePoint Server 2016 Feature Pack 2 unterstützt clientseitige Webparts des SharePoint-Frameworks, die auf klassischen, mit SharePoint-Framework v1.1.0 erstellten SharePoint-Seiten gehostet werden. Dies bedeutet, dass Sie bei der Entwicklung für die SharePoint Server 2016-Plattform aufgrund der serverseitigen Versionsabhängigkeiten SharePoint-Framework v1.1.0 verwenden müssen.
Wenn Sie die gleichen clientseitigen Webparts in SharePoint Server 2016 und in SharePoint Online verwenden möchten, müssen Sie SharePoint-Framework v1.1.0 als Basisversion verwenden, um sicherzustellen, dass das Webpart in beiden Umgebungen funktioniert.
Ab Version 1.3 bietet der SharePoint-Framework-Yeoman-Generator Unterstützung für die Erstellung von Lösungsgerüsten, die sowohl die neueste Version von SharePoint-Framework für die Verwendung mit SharePoint Online als auch mit lokalen SharePoint-Bereitstellungen auf der Grundlage von SharePoint-Framework v1.1.0 verwenden. Sie müssen keine separate Version des SharePoint-Framework-Yeoman-Generators für die Erstellung von Lösungsgerüsten für die Verwendung mit lokalen SharePoint-Bereitstellungen installieren.
Wichtig
Ab Version 1.4 unterstützt der SharePoint-Framework-Yeoman-Generator ein neues Attribut von includeClientSideAssets
, mit dem Sie angeben können, dass Objekte im sppkg-Paket enthalten sein sollen. Diese Funktion wird jedoch nicht von SharePoint Server 2016 unterstützt. Wenn eine Lösung für SharePoint Server 2016 bestimmt ist, sollte dieses Attribut in ./config/package-solution.json auf false
festgelegt werden.
Hosten der Lösung für die lokale Bereitstellung
Für die lokale Bereitstellung clientseitiger SharePoint-Framework-Webparts sind zwei unterschiedliche Aktionen erforderlich:
- Bereitstellung des Lösungspakets im SharePoint-App-Katalog
- Hosten der JavaScript-Dateien an einem zentralen Speicherort
Sie können die JavaScript-Dateien an einem Speicherort hosten, der für Ihre Umgebung am besten geeignet ist. Diese Dateien können zum Beispiel an den folgenden Speicherorten gehostet werden:
- Azure CDN: Einrichtung ähnlich wie bei SharePoint Online. Endbenutzer benötigen eine Internetverbindung.
- Lokaler Server in Ihrem Netzwerk: Ein Server, auf dem die JavaScript-Dateien für Ihr Unternehmensnetzwerk gehostet werden. Dies ist mit einer beliebigen Technologie möglich, solange auf die Dateien über HTTP-Anforderungen zugegriffen werden kann.
- SharePoint Server 2016: Sie können auch Ihre Dateien in der lokalen SharePoint-Farm hosten. Sie können zum Beispiel eine standardisierte Website in der Farm definieren, in der alle SharePoint-Framework-Ressourcen gehostet werden. Beachten Sie jedoch, dass JSON-Dateien standardmäßig nicht in SharePoint Server 2016-Bibliotheken hochgeladen werden können. Daher müssen bei dieser Option Einstellungen auf Farmebene angepasst werden.
Weitere Informationen zu gesperrten Dateitypen in SharePoint Server 2016 finden Sie im folgenden Support-Artikel: Dateitypen, die einer Liste oder Bibliothek nicht hinzugefügt werden können.
Überlegungen zur Entwicklungsumgebung
Wenn Sie clientseitige SharePoint-Framework-Webparts entwickeln, ist für den Zugriff auf npm-Pakete eine Internetverbindung erforderlich. Dies ist erforderlich, wenn das Lösungsgerüst mithilfe der Vorlagen von SharePoint-Framework-Yeoman erstellt wird.
Wenn die Entwicklungscomputer über keinen Internetzugang verfügen, können Sie eine lokale Registrierung für die erforderlichen npm-Pakete einrichten. Allerdings ist dies mit zusätzlicher Software und einem deutlichen Mehraufwand im Hinblick auf die Einrichtung und Verwaltung lokaler Paketversionen mit Paketen in dem tatsächlichen npm-Katalog verbunden.
Das Dokument Team-basierte Entwicklung im SharePoint-Framework enthält verschiedene Optionen für die Einrichtung der Entwicklungsumgebung, zum Beispiel, wenn mehrere SharePoint-Framework-Versionen unterstützt werden müssen.
Node.js, Gulp & Yeoman-Versionen
Die Abhängigkeiten für SPFx v1.1-Frameworks, -Tools und die zugehörigen Versionen stimmen nicht mit der entsprechenden Abhängigkeitsmatrix für die neuesten Versionen von SPFx überein. In diesen Fällen müssen Sie möglicherweise bestimmte Versionen der Tools installieren.
Beispielsweise wird Gulp v3.* nur bis Node.js v10 unterstützt, während Gulp v4.* von Node.js v12 und höher unterstützt wird. Da SPFx v1.1 nur unter Node.js v6 und Node.js v8 unterstützt wird, müssen Sie sicherstellen, dass eine ältere Version von Node.js sowie eine ältere Version von Gulp & Yeoman installiert sind.
Hinweis
Das Gulp-Team hat ein separates Paket, gulp-cli, eingeführt, das global installiert werden sollte. Sie kann von Projekten verwendet werden, die gulp v3 & Gulp v4 verwenden.
Weitere Informationen zur gulp-cli finden Sie hier: gulpjs/gulp/#2324.
Microsoft empfiehlt die Verwendung der neuesten Version des Yeoman-Generators für das SharePoint-Framework (@microsoft/generator-sharepoint), welche das Erstellen lokaler Projekte unterstützt: SPFx v1.6.0.
Wichtig
Der Yeoman-Generator für das SharePoint-Framework ab Version 1.13.0 unterstützt nur Projekte für SharePoint Online. Weitere Informationen zu dieser Änderung finden Sie in den Versionshinweisen zum SharePoint-Framework v1.13. SPFx 1.1.1 unterstützt jedoch nur bis zur Version Node.js v6. Daher müssen Sie die neueste Version des Yeoman-Generators für das SharePoint-Framework (v1.6.0) abrufen, die mit derselben Version von Node.js (v6) funktioniert, die auch SPFx v1.1.0 unterstützt.
Installieren von Node.js v6.17.1
Installieren globaler Abhängigkeiten
npm install gulp-cli@2.3.0 --global npm install yo@2.0.0 --global npm install @microsoft/generator-sharepoint@1.6.0 --global
Weitere Informationen finden Sie unter Kompatibilität von Entwicklungstools und Bibliotheken für das SharePoint-Framework.
Ermitteln der für eine Lösung verwendeten Version
Wenn Sie über vorhandene SharePoint-Framework-Lösungen verfügen und herausfinden möchten, welche Version von SharePoint-Framework für sie verwendet wurde, müssen Sie die folgenden Dateien prüfen:
- .yo-rc.json: Datei im Stammordner der Lösung, in der die bei der Erstellung der Lösung verwendete SharePoint-Framework-Yeoman-Vorlagenversion gespeichert ist.
- package.json: Datei im Stammordner der Lösung, die Verweise auf die in der Lösung verwendeten Paketversionen enthält.
- npm-shrinkwrap.json: Datei im Stammordner der Lösung, die Informationen zu den verwendeten genauen Versionen enthält (bei Verwendung des
npm shrinkwrap
-Befehls zum Sperren der genauen Versionen der Lösung). - package.json: Datei im Ordner node_modules/@microsoft/sp-webpart-base, die ein
version
-Attribut enthält, das der verwendeten SharePoint-Framework-Version entspricht, wenn Sie Pakete in Ihrer Lösung installiert haben.
Problembehandlung
Auswirkungen von Node.js v6, Node.js v8, HTTP1, & HTTP2
Zu diesem Zeitpunkt der Version 1.1 wurde Node.js von Node.js v6.x auf v8.x umgestellt. In diesem Update hat Node.js eine Änderung eingeführt, bei der das Standard-HTTP-Protokoll von HTTP1 zu HTTP2 gewechselt wurde. SPFx v 1.1 wurde für HTTP1 und nicht für HTTP2 geschrieben. Deshalb wirkt sich diese Änderung auf den lokalen Webserver für SPFx v 1.1-Projekte aus.
In Node.js v8.x können Sie HTTP1 erzwingen, indem Sie die folgende Umgebungsvariable festlegen, um Node.js anzuweisen, HTTP1 anstelle der Standardoption HTTP2 zu verwenden: NODE_NO_HTTP2=1
. Diese Umgebungsvariable ist nur in Node.js v8.x vorhanden. Daher sollten Sie beim Erstellen von SPFx-Lösungen für SharePoint Server 2016 Node.js v8.x verwenden.
Dieses Problem wirkt sich nicht auf spätere Versionen von SPFx aus, da sie zur Unterstützung von HTTPS aktualisiert wurden.
Weitere Informationen finden Sie unter Problem #1002.