コンテンツにスキップ

バンドリング

デフォルトでは、Wranglerはesbuildを使用してあなたのWorkerコードをバンドルします。これは、Wranglerがpackage.jsonで定義されたnpmからモジュールをインポートするためのビルトインサポートを持っていることを意味します。WranglerがCloudflareにアップロードする正確なコードを確認するには、npx wrangler deploy --dry-run --outdir distを実行してください。これにより、Wranglerのバンドリング後のWorkerコードが表示されます。

バンドルされないファイル

あなたのWorkerコードをバンドルすることは、複数のモジュールを一つにまとめることを意味します。時には、バンドルに直接インライン化すべきでないモジュールがあるかもしれません。例えば、WasmファイルをJavaScript Workerにバンドルするのではなく、ランタイムでインポートできる別のモジュールとしてWasmファイルをアップロードしたい場合があります。Wranglerは以下のファイルタイプをサポートしています:

  • .txt
  • .html
  • .bin
  • .wasmおよび.wasm?module

これらのファイルタイプをカスタマイズするには、バンドリング設定を参照してください。

例えば、以下のインポートを使用すると、変数dataexample.htmlの内容を含む文字列になります:

import data from "./example.html"; // `example.html`はあなたのローカルディレクトリ内のファイルです

これはWranglerでのWasmサポートの基礎でもあります。Wranglerで開発されたWorkerでWasmモジュールを使用するには、Workerに以下を追加します:

import wasm from "./example.wasm"; // `example.wasm`はあなたのローカルディレクトリ内のファイルです
const instance = await WebAssembly.instantiate(wasm); // fetch()ハンドラー内ではなく、グローバルスコープでWasmモジュールをインスタンス化します
export default {
fetch(request) {
const result = instance.exports.exported_func();
},
};

条件付きエクスポート

Wranglerはpackage.json内の条件付きexportsフィールドを尊重します。これにより、開発者は実行しているJavaScriptランタイムに応じて異なる実装を持つアイソモーフィックライブラリを実装できます。バンドル時に、Wranglerはworkerdキーを読み込もうとします。Wranglerリポジトリにはアイソモーフィックパッケージの例があります。

バンドリングの無効化

あなたのビルドツールがすでにCloudflareに直接デプロイ可能なビルドアーティファクトを生成している場合、--no-bundleコマンドラインフラグを使用してバンドリングをオプトアウトできます:npx wrangler deploy --no-bundle。バンドリングをオプトアウトすると、Wranglerはあなたのコードを処理せず、Wranglerバンドリングによって導入された一部の機能(例えば、ミニファイやポリフィルの挿入)は利用できなくなります。

wrangler devおよびwrangler deployを使用する際に、WranglerがバンドルしてCloudflareのグローバルネットワークにアップロードする内容をカスタマイズするには、カスタムビルドを使用してください。