Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Achtung
Das Microsoft Graph-Toolkit ist veraltet. Die Ausmusterungsphase beginnt am 1. September 2025, die vollständige Einstellung ist für den 28. August 2026 geplant. Entwickler sollten zur Verwendung der Microsoft Graph SDKs oder anderer unterstützter Microsoft Graph-Tools zum Erstellen von Weboberflächen migrieren. Weitere Informationen finden Sie in der Ankündigung zur Einstellung.
Verwenden Sie das Microsoft Graph-Toolkit in Ihren SharePoint-Framework Lösungen.
Wichtig
Das @microsoft/mgt-spfx Paket wurde eingestellt. Verwenden Sie Mehrdeutigkeit für Ihre SharePoint-Framework-Webparts.
Installation
Um Komponenten des Microsoft Graph-Toolkits aus der Bibliothek zu laden, fügen Sie ihrem SharePoint-Framework-Projekt die @microsoft/mgt-elementPakete , @microsoft/mgt-componentsund @microsoft/mgt-sharepoint-provider als Laufzeitabhängigkeit hinzu:
npm install @microsoft/mgt-element @microsoft/mgt-components @microsoft/mgt-sharepoint-provider
oder
yarn add @microsoft/mgt-element @microsoft/mgt-components @microsoft/mgt-sharepoint-provider
Verwendung
Wenn Sie SharePoint-Framework Webparts und Erweiterungen erstellen, verweisen Sie auf das Microsoft Graph-Toolkit , und in und @microsoft/mgt-sharepoint-provider@microsoft/mgt-element .SharePointProviderProvidercustomElementsHelper Wenn Sie React nicht verwenden, sollten Sie auch die Komponentenregistrierungsfunktionen aus @microsoft/mgt-components Paketen importieren.
Für nicht React basierte Lösungen
import { customElementsHelper, Providers } from '@microsoft/mgt-element';
import { SharePointProvider } from "@microsoft/mgt-sharepoint-provider";
import { registerMgtPersonComponent } from '@microsoft/mgt-components';
// [...] trimmed for brevity
export default class MgtWebPart extends BaseClientSideWebPart<IMgtWebPartProps> {
protected async onInit() {
if (!Providers.globalProvider) {
Providers.globalProvider = new SharePointProvider(this.context);
}
customElementsHelper.withDisambigutaion('contoso-hr-solution');
registerMgtPersonComponent();
}
public render(): void {
this.domElement.innerHTML = `
<div>
<mgt-contoso-hr-solution-person person-query="me"></mgt-person>
</div>`;
}
// [...] trimmed for brevity
}
React
Wenn Sie ein Webpart mit React erstellen, können Sie das @microsoft/mgt-react Paket verwenden und die manuelle Registrierung von Komponenten überspringen. Stellen Sie jedoch sicher, dass Ihre React Komponente verzögert aus dem Webpart geladen wird, um die Mehrdeutigkeit zu nutzen.
// [...] trimmed for brevity
import { Providers, customElementHelper } from "@microsoft/mgt-element";
import { SharePointProvider } from "@microsoft/mgt-sharepoint-provider";
import { lazyLoadComponent } from "@microsoft/mgt-spfx-utils";
// Async import of component that imports the React Components
const MgtReact = React.lazy(
() =>
import(/* webpackChunkName: 'mgt-react-component' */ "./components/MgtReact")
);
// set the disambiguation before initializing any web part
customElementHelper.withDisambiguation("mgt-demo-client-side-solution");
export default class MgtDemoWebPart extends BaseClientSideWebPart<IMgtDemoWebPartProps> {
// set the global provider
protected async onInit(): Promise<void> {
if (!Providers.globalProvider) {
Providers.globalProvider = new SharePointProvider(this.context);
}
return super.onInit();
}
public render(): void {
const element = lazyLoadComponent(MgtReact, {
description: this.properties.description
});
ReactDom.render(element, this.domElement);
}
// [...] trimmed for brevity
}
In den zugrunde liegenden React Komponenten kann die Komponente Des Microsoft Graph-Toolkits direkt verwendet werden.
import { Person } from '@microsoft/mgt-react';
import { ViewType } from '@microsoft/mgt-components';
// [...] trimmed for brevity
export default class MgtReact extends React.Component<IMgtReactProps, {}> {
public render(): React.ReactElement<IMgtReactProps> {
return (
<div className={ styles.mgtReact }>
<Person personQuery="me" view={ViewType.image}></Person>
</div>
);
}
}
Wichtig
Stellen Sie sicher, dass Ihre Stammwebpartklasse keine Microsoft Graph Toolkit-Ressourcen aus @microsoft/mgt-reactimportiert. Diese sollten nur innerhalb der verzögert geladenen React-Komponenten importiert werden.
Konfigurieren von Webpack
Zum Erstellen Ihres Webparts müssen Sie die SharePoint-Framework Webpack-Konfiguration aktualisieren, um modernes JavaScript mit optionaler Verkettung und Nullish-Zusammenführung durch zusätzliche Babel-Transformationen ordnungsgemäß zu behandeln.
! [WICHTIG] Wenn Sie Webpack nicht für die Verarbeitung von modernem JavaScript konfigurieren, können Sie keine Webparts erstellen, die das Microsoft Graph-Toolkit verwenden.
Installieren von Babel-Paketen
Um Abhängigkeiten, die ES2021-basierten Code ausgeben, ordnungsgemäß zu behandeln, fügen Sie dem Projekt einen Babel-Ladeprogramm und einige Transformationen als Entwicklungsabhängigkeiten hinzu.
npm i --save-dev babel-loader@8.3.0 @babel/plugin-transform-optional-chaining @babel/plugin-transform-nullish-coalescing-operator @babel/plugin-transform-logical-assignment-operators
Ändern der Webpack-Konfiguration
SharePoint-Framework bietet ein Erweiterbarkeitsmodell zum Ändern der Webpack-Konfiguration, die zum Bündeln der Webparts verwendet wird. Suchen und öffnen gulpfile.jsSie . Fügen Sie den folgenden Code oberhalb der Zeile hinzu, die enthält build.initialize(require('gulp'));:
const path = require("path");
const litFolders = [
`node_modules${path.sep}lit${path.sep}`,
`node_modules${path.sep}@lit${path.sep}`,
`node_modules${path.sep}lit-html${path.sep}`
];
build.configureWebpack.mergeConfig({
additionalConfiguration: generatedConfiguration => {
generatedConfiguration.module.rules.push({
test: /\.js$/,
// only run on lit packages
include: resourcePath =>
litFolders.some(litFolder => resourcePath.includes(litFolder)),
use: {
loader: 'babel-loader',
options: {
plugins: [
'@babel/plugin-transform-optional-chaining',
'@babel/plugin-transform-nullish-coalescing-operator',
'@babel/plugin-transform-logical-assignment-operators'
]
}
}
});
return generatedConfiguration;
}
});