STAGE 06 — 6-1 / 本番へ届ける

.sppkgを作る

考えてみよう

heft start で動くのは確認できました。でも、それは「開発中の起動」です。他の人が使えるように配るには、何が必要でしょう?

配布用の1つのファイルにまとめる必要があります。それが .sppkg(エスピーパッケージ)。開発中のコードを本番用に固め、SharePointに登録できる形にしたものです。この記事で、その .sppkg を作ります。

まず、バージョンを確認する

パッケージにはバージョン番号が付きます。config/package-solution.json を開き、version を確認しましょう。

{
  "solution": {
    "name": "spfx-list-viewer-client-side-solution",
    "id": "……",
    "version": "1.0.0.0"
  }
}

初回は 1.0.0.0 のままでOKです。このバージョンは、あとで更新版を配るときに上げることになります(この記事の最後で触れます)。

本番用にビルドする

パッケージ生成は、プロジェクトフォルダで次の1コマンドです。

npm run build

これは package.json に定義された本番ビルドで、中身は次の2段階です。

gulp 世代の gulp bundle --ship && gulp package-solution --ship にあたる作業を、Heft世代では npm run build 一発で行う、と考えてください。

ゆみちゃん
ゆみ

古い記事だと「bundle して package-solution して……」と2つコマンドを打つ手順が多いけど、私たちの世代(1.22+)は npm run build でまとめてOK。もし個別に打ちたいときは、上に書いた2つのheftコマンドを順に実行してもいいよ。

できあがった .sppkg の在り処

ビルドが成功すると、.sppkg ファイルがここに生成されます。

sharepoint/solution/spfx-list-viewer.sppkg

この1ファイルが、これから配る「アプリの実体」です。中身はコードやリソースが1つに固められていて、そのままSharePointへ登録できます。

やってみよう

npm run build を実行し、sharepoint/solution/ フォルダに .sppkg ができているか確認しましょう。

確認ポイント

.sppkg が生成され、ビルドが赤いエラーなく終わっていれば成功です。もしエラーで止まったら、まずメッセージの1行目を読みます。多くは型の不一致や、未使用の変数などの軽微な指摘です。heft start で動いていたなら、本番ビルド固有の検査(lint)に引っかかっただけのことがほとんどです。

更新版を配るときは、バージョンを上げる

いま作ったのは 1.0.0.0。あとで機能を直して配り直すときは、package-solution.jsonversion を上げてから(例:1.0.1.0)、もう一度 npm run build します。バージョンを上げないと、SharePoint側が「新しい版だ」と認識してくれません。この運用は、次の記事の最後でもう一度触れます。

この記事のまとめ

パッケージができました。次はいよいよ最終工程——これをSharePointにアップロードし、ページに配置して「本番で動く」状態にします。

用語メモ
.sppkg
SharePointアプリの配布パッケージ。コードを1ファイルに固めたもの
npm run build
本番ビルド。内部でheftのproductionコンパイルとpackage-solutionを実行
package-solution.json
パッケージ名・ID・バージョンを持つ設定。更新時はversionを上げる
version
パッケージの版番号(例1.0.0.0)。上げないと更新が認識されない