workbox-cli

ワークボックスのコマンドライン インターフェース( workbox-cli パッケージなど)は、ワークボックスと呼ばれる Node.js プログラムで構成され、 Windows、macOS、または UNIX 互換のコマンドラインから できます。内部では、workbox-cli が workbox-build モジュールをラップし、 Workbox をコマンドラインビルドに 簡単に統合できます 柔軟に構成できます。

CLI をインストールする

Node を使用して CLI をインストールするには、ターミナルで次のコマンドを実行します。

npm install workbox-cli --global

CLI モード

CLI には 4 つのモードがあります。

  • wizard: プロジェクトの Workbox を設定するための手順ガイド。
  • generateSW: 完全な Service Worker を生成します。
  • injectManifest: プロジェクトにアセットを挿入してプリキャッシュします。
  • copyLibraries: ワークボックス ライブラリをディレクトリにコピーします。

wizard

Workbox ウィザードにより、ローカル ディレクトリに関する一連の質問が表示されます。 事前キャッシュするファイルを指定します回答は以下の目的で使用されます 実行時に使用できる構成ファイルを生成します。 generateSW モード。

ほとんどの開発者は、ワークボックス ウィザードを 1 回実行すれば済むので、 生成される初期構成ファイルを手動でカスタマイズする ビルド構成オプションを使用できます。

ウィザードを開始するには、次のコマンドを実行します。

npx workbox-cli wizard

Workbox CLI のウィザードのスクリーンショット

generateSW

次のように Workbox CLI を使用して、完全な Service Worker を生成できます。 構成ファイル(ウィザードで生成されたファイルなど)

次のコマンドを実行します。

npx workbox-cli generateSW path/to/config.js

Workbox の組み込みのプレキャッシュとランタイム キャッシュに満足しているデベロッパー Service Worker の動作をカスタマイズする必要がなくなり、 generateSW モードを使用することをおすすめします。

generateSW を使用するタイミング

  • ファイルを事前キャッシュに保存する必要がある。
  • シンプルなランタイム キャッシュが必要である。

generateSW を使用すべきでない場合

  • Service Worker の他の機能(Web Push など)を使用する場合。
  • 追加のスクリプトをインポートするか、カスタム キャッシュ戦略のためのロジックを追加する。

injectManifest

最終的な Service Worker ファイルを細かく制御したいデベロッパー向け injectManifest モードを使用できます。このモードは、 既存の Service Worker ファイル(場所は config.js で指定)

workbox injectManifest が実行されると、特定の文字列が検索されます。 (デフォルトは precacheAndRoute(self.__WB_MANIFEST))ソース 必要があります。空の配列が、指定した文字列のリストに プリキャッシュする URL と、そのファイルに Service Worker ファイルを 宛先のロケーション。config.js の構成オプションに基づきます。 ソース Service Worker のコードの残りの部分はそのままです。

このモードでは以下のように Workbox を使用できます。

npx workbox-cli injectManifest path/to/config.js

injectManifest を使用するタイミング

  • Service Worker をより細かく制御したい。
  • ファイルを事前キャッシュに保存する必要がある。
  • ルーティングと戦略をカスタマイズする必要がある。
  • 他のプラットフォーム機能(Web Push など)で Service Worker を使用する場合。

injectManifest を使用すべきでない場合

  • サイトに Service Worker を追加する最も簡単な方法

copyLibraries

このモードは、injectManifest を使用する場合に便利です。 独自のオリジンでホストされている Workbox ライブラリ ファイルを代わりに使用したい 確認しました

ファイルを書き込むパスを指定して実行するだけで済みます。

npx workbox-cli copyLibraries third_party/workbox/

ビルドプロセス インテグレーション

Workbox を My Build Process と統合する必要がある理由

Workbox プロジェクトには、複数のライブラリが連携して動作し、 ウェブアプリの Service Worker目的 それらのライブラリを効果的に使用するには、Workbox を ビルドプロセスに進みます。これにより、Service Worker は ウェブアプリの重要なコンテンツすべてを 効率的にキャッシュして コンテンツを最新の状態に保ちます。

workbox-cli がビルドプロセスに適しているかどうか

完全にベースとなっている既存のビルドプロセスがある場合、 npm スクリプト workbox-cli が適しています。

現在ビルドとして webpack を使用している場合 workbox-webback-plugin を使用して の方が適しています。

現在 Gulp を使用している場合は、 Grunt などの Node.js ベースのビルドツールを使用して、 ビルド スクリプトに workbox-build を統合します。 の方が適しています。

ビルドプロセスがまったくない場合は、それを作成する必要があります Workbox を使用してアセットを事前キャッシュに保存しますTrying ~親になるステップ~ 手動で workbox-cli を実行しないと、エラーが発生しやすく リピーターに古いコンテンツが提供される可能性があります

セットアップと設定

開発環境として workbox-cliインストールした後 追加するには、workbox の呼び出しを 既存のビルドプロセスの npm スクリプトの最後:

package.json から:

{
  "scripts": {
    "build": "my-build-script && workbox <mode> <path/to/config.js>"
  }
}

<mode> は、generateSW または injectManifest に置き換えます( )と <path/to/config.js> は、次のパスに置き換えます。 選択できます。構成が作成されている可能性があります 手動で調整することもできます。workbox wizard

構成

generateSW が使用するオプション

すべての構成オプションについては、リファレンス ドキュメントをご覧ください。

injectManifest が使用するオプション

すべての構成オプションについては、リファレンス ドキュメントをご覧ください。