SharePoint Server 2016 Feature Pack 2 を使用した SharePoint Framework 開発

SharePoint Server 2016 Feature Pack 2 は、従来の SharePoint ページでホストされる SharePoint Framework クライアント側 Web パーツをサポートします。

Feature Pack 2 を使用した SharePoint Server 2016 での SharePoint Framework 開発の紹介については、Microsoft 365 プラットフォーム コミュニティ (PnP) YouTube チャンネルの次のビデオでも扱われています。

使用する SharePoint Framework のバージョンはどれですか

SharePoint Online と SharePoint Server 2016 は新機能のリリース サイクルが異なるため、SharePoint Framework についても異なる機能を備えています。 SharePoint Online は、常に最新のバージョンの SharePoint Framework を使用しますが、SharePoint Server 2016 は、展開されたパッケージのサーバー側の依存関係と一致するバージョンのみをサポートしています。

SharePoint Server 2016 Feature Pack 2 は、SharePoint Framework v1.1.0 を使用して構築された従来の SharePoint ページでホストされる SharePoint Framework クライアント側 Web パーツをサポートします。 つまり、SharePoint Server 2016 プラットフォームをターゲットとしている場合、サーバー側のバージョンの依存関係のために、SharePoint Framework v1.1.0 を使用する必要があります。

SharePoint Server 2016 と SharePoint Online の両方での同じクライアント側 Web パーツの使用を計画している場合は、両方の環境で Web パーツが確実に動作するように、SharePoint Framework v1.1.0 をベースライン バージョンとして使用する必要があります。

バージョン 1.3 以降、SharePoint Framework Yeoman ジェネレーターは、SharePoint Online と SharePoint Framework の最新バージョンを併用するスキャフォールディング ソリューションと、SharePoint フレームワークの v1.1.0 に基づいた SharePoint オンプレミスで使用できるソリューションの両方をサポートしています。 SharePoint オンプレミスと一緒に使用するためのソリューションをスキャフォールディングするために、SharePoint Framework Yeoman ジェネレーターの別バージョンをインストールする必要はありません。

重要

バージョン 1.4 以降、SharePoint Framework Yeoman ジェネレーターは、includeClientSideAssets の新しい属性をサポートしています。これは、アセットを sppkg パッケージに含める必要性を示すために使用できます。 ただし、この機能は SharePoint Server 2016 ではサポートされていません。 SharePoint Server 2016 を対象としたソリューションの場合、./config/package-solution.json のこの属性は false として更新する必要があります。

オンプレミス展開のためにソリューションをホスティングする

オンプレミスに展開された SharePoint Framework クライアント側 Web パーツを取得するには、次の 2 つの別個のアクションが必要です。

  • SharePoint アプリ カタログへソリューション パッケージを展開する
  • 集中管理された場所で JavaScript ファイルをホスティングする

ご利用の環境に最も適した場所で JavaScript ファイルをホストすることができます。 たとえば、JavaScript ファイルは次のいずれかの場所でホストすることができます。

  • Azure CDN: SharePoint Online と同様の設定です。 エンド ユーザーにはインターネット接続が必要です。
  • ネットワーク内のローカル サーバー: 企業ネットワーク用の JavaScript ファイルをホストしているサーバーです。 ファイルが HTTP 要求を介してアクセス可能であれば、どのようなテクノロジを使用してもかまいません。
  • SharePoint Server 2016: ローカルの SharePoint ファーム自体でファイルをホストすることもできます。 たとえば、すべての SharePoint Framework アセットがホストされているファーム内に、標準化されたサイトを定義することができます。 ただし、既定では .json ファイルは SharePoint Server 2016 ライブラリにアップロードできないため、ファーム レベルの設定をこのオプションに合わせて調整する必要があります。

SharePoint Server 2016 でブロックされているファイルの種類の詳細については、次のサポート記事を参照してください: 「リストまたはライブラリに追加できないファイルの種類」。

開発環境の注意点

SharePoint Framework のクライアント側 Web パーツを開発している場合、npm パッケージにアクセスするにはインターネット接続が必要です。 インターネット接続は、ソリューションが SharePoint Framework Yeoman テンプレートを使用してスキャフォールディングされている場合に必要です。

開発マシンでインターネット アクセスが利用できない場合は、必要な npm パッケージのローカル オンプレミスのレジストリをセットアップすることができます。 ただし、これには追加のソフトウェアと、実際の npm ギャラリー内のパッケージを使用してローカル パッケージ バージョンをセットアップして維持するための相当量の作業が必要です。

SharePoint Framework におけるチーム ベースの開発」ガイダンス ドキュメントには、複数の SharePoint Framework バージョンをサポートする必要がある場合など、開発環境のセットアップに関するさまざまなオプションが記載されています。

Node.js、Gulp & Yeoman バージョン

SPFx v1.1 フレームワーク、ツール、および関連バージョンの依存関係は、最新バージョンの SPFx の同じ依存関係マトリックスと一致しません。 このような場合は、特定のバージョンのツールをインストールすることが必要になる可能性があります。

たとえば、Gulp v3.* は Node.js v10 までしかサポートされておらず、Gulp v4.* は Node.js v12 以降でサポートされています。 SPFx v1.1 は、Node.js v6 と Node.js v8 でのみサポートされているため、古いバージョンのNode.jsと古いバージョンの Gulp & Yeoman がインストールされていることを確認する必要があります。

注:

Gulp チームは、グローバルにインストールする必要がある別のパッケージ gulp-cli を導入しました。 これは、Gulp v3 & Gulp v4 を使用するプロジェクトで使用できます。

gulp-cli の詳細については、gulpjs/gulp/#2324 をご覧ください。

Microsoft は、オンプレミス プロジェクト SPFx v1.6.0 の作成をサポートする SharePoint Framework 用の最新バージョンの Yeoman ジェネレーター (@microsoft/generator-sharepoint) を使用することをお勧めします。

重要

v1.13.0 以降の SharePoint Framework の Yeoman ジェネレーターは、SharePoint Online のプロジェクトのみをサポートします。 この変更の詳細については、SharePoint Framework v1.13 リリース ノートを参照してください。 ただし、SPFx 1.1.1 は Node.js v6 までしかサポートしていません。 したがって、SPFx v1.1.0 がサポートされているのと同じバージョンの Node.js (v6) で動作する SharePoint Framework (v1.6.0) 用の最新バージョンの Yeoman ジェネレーターを入手する必要があります。

  1. Node.js v6.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: ソリューションのルート フォルダーにあるファイルであり、ソリューションの作成時に使用された SharePoint Framework Yeoman テンプレート バージョンを格納しています。
  • package.json: ソリューションのルート フォルダーにあるファイルであり、ソリューションで使用されるパッケージ バージョンへの参照を含みます。
  • npm-shrinkwrap.json: ソリューションのルート フォルダーにあるファイルであり、(npm shrinkwrap コマンドをソリューションの正確なバージョンをロック ダウンするために使用した場合に) 使用された正確なバージョンに関する情報を含みます。
  • package.json: node_modules/@microsoft/sp-webpart-base フォルダーにあるファイルであり、ソリューションにパッケージをインストールした場合、使用された SharePoint Framework のバージョンに一致する version 属性を含みます。

トラブルシューティング

Node.js v6、Node.js v8、HTTP1、HTTP2 の & 影響

v1.1 がリリースされた時期に、Node.js は Node.js v6.x から v8.x に移行しました。 今回の更新プログラムでは、Node.js が変更され、既定の HTTP プロトコルが HTTP1 から HTTP2 に切り替えられました。 SPFx v 1.1 は HTTP2 ではなく HTTP1 向けに記述されているため、これは、SPFx v 1.1 プロジェクトのローカル Web サーバーに影響のある変更です。

Node.js v8.x で、Node.js が既定の HTTP2 ではなく HTTP1 を使用するように環境変数 NODE_NO_HTTP2=1 を設定して、強制的に HTTP1 にすることができます。 この環境変数は、Node.js v8.x にのみ存在します。 したがって、SharePoint Server 2016 の SPFx ソリューションを構築する場合は、Node.js v8.x を使用する必要があります。

この問題は、SPFx のバージョン以降には影響を与えません。なぜなら、それらは HTTP がサポートされるよう更新されているからです。

詳細については、「issue #1002」を参照してください。

関連項目