Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Предостережение
Набор средств Microsoft Graph не рекомендуется использовать. Период выхода на пенсию начинается 1 сентября 2025 года, а полный выход на пенсию запланирован на 28 августа 2026 года. Разработчикам следует перейти на использование пакетов SDK для Microsoft Graph или других поддерживаемых средств Microsoft Graph для создания веб-интерфейсов. Дополнительные сведения см. в объявлении об устаревании.
Используйте Microsoft Graph Toolkit в решениях SharePoint Framework.
Важно!
Пакет @microsoft/mgt-spfx был прекращен. Используйте дизамбиг для веб-частей SharePoint Framework.
Установка
Чтобы загрузить компоненты Microsoft Graph Toolkit из библиотеки@microsoft/mgt-element, добавьте пакеты , @microsoft/mgt-componentsи @microsoft/mgt-sharepoint-provider в качестве зависимости среды выполнения в проект SharePoint Framework:
npm install @microsoft/mgt-element @microsoft/mgt-components @microsoft/mgt-sharepoint-provider
или
yarn add @microsoft/mgt-element @microsoft/mgt-components @microsoft/mgt-sharepoint-provider
Применение
При создании SharePoint Framework веб-частей и расширений ссылайся на Microsoft Graph Toolkit customElementsHelper, Providerи SharePointProvider из @microsoft/mgt-element и @microsoft/mgt-sharepoint-provider. Если вы не используете React, следует также импортировать функции регистрации компонентов из @microsoft/mgt-components пакетов.
Для решений, не основанных на React
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
Если вы создаете веб-часть с помощью React, вы можете использовать @microsoft/mgt-react пакет и пропустить регистрацию компонентов вручную. Однако убедитесь, что ваш отложенный компонент React из веб-части, чтобы использовать дизамбиг.
// [...] 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
}
В базовых компонентах React компонент Microsoft Graph Toolkit можно использовать напрямую.
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>
);
}
}
Важно!
Убедитесь, что корневой класс веб-части не импортирует ресурсы Microsoft Graph Toolkit из @microsoft/mgt-react. Они должны быть импортированы только внутри отложенных React компонентов.
Настройка webpack
Чтобы создать веб-часть, необходимо обновить конфигурацию SharePoint Framework webpack, чтобы правильно обрабатывать современный JavaScript с помощью необязательных цепочек и объединения nullish с помощью дополнительных преобразований Babel.
! [ВАЖНО] Если вы не настроите webpack для обработки современного JavaScript, вы не сможете создавать веб-части, использующие Microsoft Graph Toolkit.
Установка пакетов Babel
Чтобы правильно обрабатывать зависимости, которые выдают код на основе ES2021, добавьте в проект загрузчик babel и некоторые преобразования в качестве зависимостей разработки.
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
Изменение конфигурации webpack
SharePoint Framework предоставляет модель расширяемости для изменения конфигурации webpack, используемой для упаковки веб-частей. Найдите и откройте gulpfile.js. Добавьте следующий код над строкой, содержащей 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;
}
});