SharePoint Framework のパッケージの更新

SharePoint のクライアント側の開発ツールは、依存関係や他の必要な JavaScript ヘルパーを管理するために npm のパッケージ マネージャーを使います。 npm は、通常、Node.js のセットアップの一部に含まれます。

新しいクライアント側ソリューションを作成するときは、SharePoint 用の Yeoman ジェネレーターによって、クライアント側のプロジェクトに必要な最新の SharePoint Framework パッケージがフェッチされます。 プロジェクトのビルドを進めるにつれて、1 つ以上のパッケージの新しいバージョンが利用可能になったために、既存のパッケージが古くなってしまうことがあります。

特定のリリースまたは最新のパッケージのリリース ノートに基づいて、プロジェクトで使う SharePoint Framework パッケージを更新するように決定することができます。 SharePoint Framework パッケージには、プロジェクトにインストールした npm パッケージ (例: @microsoft/sp-core-library) と、グローバルにインストールした npm パッケージ (例: @microsoft/generator-sharepoint) の両方が含まれます。

ヒント

実際には必要ない場合もありますが、SharePoint Framework パッケージを時々更新して、リリースされた最新の変更と修正を取得することをお勧めします。

古くなったパッケージを検索する

クライアント側のプロジェクトで古くなったパッケージ (SharePoint フレームワーク パッケージと、プロジェクトが依存しているその他のパッケージを含む) を検索するには、コンソールから、プロジェクトと同じディレクトリで次のコマンドを実行します。

npm outdated

このコマンドにより、プロジェクトが依存しているパッケージに関する以下の情報が一覧表示されます。 この情報は、プロジェクト ディレクトリのルートにある package.json ファイルと npm レジストリから参照したものです。

  • プロジェクトにインストールされている現在のバージョン
  • プロジェクトによって要求されたバージョン (package.json で入手可能)
  • 利用可能な最新のバージョン

NPM の古くなったパッケージ

SharePoint Framework パッケージを識別するには、次の npm スコープとプレフィックスで始まるパッケージ名を探します。

@microsoft/sp-

SharePoint Framework パッケージと共に、リアクションおよびoffice-ui-fabric-reactパッケージを更新しなければならない場合もあります。 特定の リリースのリリース ノート & ロードマップ を必ず読み、更新が必要なパッケージを推測してください。

プロジェクトで "npm outdated" を使用する

Feature Pack 2 を使用した SharePoint Server 2016 は、SharePoint Framework ソリューションをサポートしています。 SharePoint Server 2016 は、SharePoint Online で使用可能なバージョンより古いバージョンの SharePoint Framework を使用します。

新しいプロジェクトをスキャフォールディングするときに、SharePoint Framework Yeoman ジェネレーターは、ソリューションが最新のバージョンの SharePoint Framework を使用し、SharePoint Online のみで動作する必要があるか、または以前のバージョンの SharePoint Framework を使用し、SharePoint Server 2016 と SharePoint Online の両方で動作する必要があるかを選択するように要求します。

SharePoint Online と SharePoint Server 2016 の両方を対象とするプロジェクトで npm outdated コマンドを実行すると、最新バージョンの SharePoint Framework パッケージが表示されます。 ただし、これらのバージョンは SharePoint Online でのみ動作します。 これらの最新パッケージを使用するためにソリューションを更新すると、ソリューションは SharePoint Server 2016 で使用できなくなります。

オンプレミスでホストされた SharePoint と互換性のある SharePoint Framework ソリューションを操作する場合は、対象の SharePoint ファームのパッチ レベルと、サポートする SharePoint Framework のバージョンを常に確認する必要があります。

パッケージの更新

パッケージを新しいバージョンに更新するときは、常にパッケージ マネージャー (npm または Yarn) を使用する必要があります。 package.json ファイルは、手動で編集しないでください。 推奨されるロック ファイルの使用方法に従う場合、package.json ファイルへの変更は無視されます。

まず、更新が必要なパッケージと、使用する新しいバージョンを特定します。 TypeScript などのように、その他の SharePoint Framework の依存関係と互換性がない可能性があるため、必ずしも指定されたパッケージの最新バージョンを使用できるとは限りません。

更新するパッケージごとに、次のコマンドを実行します。

npm install mypackage@newversion --save

たとえば、date-fns バージョン v2.9.0 を使用していて、バージョン 2.16.1 に更新する場合は、次のコマンドを実行します。

npm install date-fns@2.16.1 --save

npm を使用してパッケージを更新すると、指定されたバージョンのパッケージがプロジェクトにインストールされ、package.json ファイルの依存関係のバージョン番号とプロジェクトで使用されるロック ファイルが更新されます。

パッケージのインストール後に、次のコマンドを実行して、古いビルド成果物をクリーンアップします。

gulp clean

node_modules フォルダーを削除して古いパッケージをすべて削除し、更新された package.json を使用してすべての依存関係をダウンロード (つまり再インストール) することをお勧めします。 この手順を行わないと、次にプロジェクトをビルドする際に、古いバージョンが新しいバージョンと競合する可能性があります。

npm install

コードを更新する

API に重大な変更があったときは、既存のプロジェクト コードと構成ファイルを更新することが必要になる場合があります。 そのような重大な変更の有無や、既存のコードに必要な修正については、各リリースのリリース ノートに記載されています。 それらの修正を適用してコードを更新したことを確認する必要があります。

プロジェクト ディレクトリのコンソールから次のコマンドを実行することにより、いつでもプロジェクトをビルドして、エラーや警告がないかどうかを確認できます。

gulp build

Yeoman ジェネレーターを更新する

SharePoint Framework Yeoman ジェネレーターをグローバルにインストールしている場合は、次のコマンドを実行して更新が必要かどうかを調べることができます。

npm outdated -g

このコマンドにより、コンピューターにグローバルにインストールされたパッケージに関する以下の情報が一覧表示されます。 この情報は、コンピューターにインストールされたバージョンと npm レジストリから参照したものです。

  • コンピューターにグローバルにインストールされている現在のバージョン
  • インストール時に要求したバージョン
  • 利用可能な最新のバージョン

NPM の古くなったグローバル パッケージ

ジェネレーター パッケージを識別するには、次のパッケージ名を探します。

@microsoft/generator-sharepoint

ジェネレーター パッケージの更新

任意のコンソールを開き、次のコマンドを実行して、公開されている最新のバージョンにジェネレーターを更新します。

npm install @microsoft/generator-sharepoint@latest -g

このコマンドにより、SharePoint 用の Yeoman ジェネレーターが、その依存関係と共に、公開されている最新のバージョンに更新されます。 これを検証するには、コンソールで次のコマンドを実行します。

npm ls @microsoft/generator-sharepoint -g --depth=0

関連項目