Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

ソースマップとスタックトレース

最終更新 Markdown で表示Agent セットアップ

スタックトレース は、アプリケーションで未処理の例外が発生したときに、コードのデバッグに役立ちます。スタックトレースには、呼び出された関数、その順序、行とファイル、引数が表示されます。

ほとんどの JavaScript コードは、本番環境へデプロイする前に、まずバンドルされ、多くの場合トランスパイルされ、さらにミニファイされます。この処理でバンドルが小さくなり、性能が最適化されます。必要に応じて、TypeScript から JavaScript への変換も行われます。

ソースマップは、コンパイルおよびミニファイされたコードを、元のコードへ戻します。ソースマップは、JavaScript ランタイムが返すスタックトレースと組み合わせて、スタックトレースを表示します。

ソースマップ

ソースマップを有効にするには、Worker の Wrangler 設定 に次を追加します。

{
	"upload_source_maps": true
}
upload_source_maps = true

upload_source_mapstrue にすると、wrangler deploy または wrangler versions deploy の実行時に、Wrangler がソースマップファイルを自動生成してアップロードします。

スタックトレース

Worker がキャッチされない例外をスローすると、ソースマップを取得し、例外のスタックトレースを Worker の元のソースコードの行へ対応付けます。

スタックトレースは、リアルタイムログ のストリーミング時、または Tail Workers で確認できます。

Cloudflare がスタックトレースを Worker のソースマップへ対応付けるときは、行ごとにできるだけ多く再マップします。何らかの理由でスタックトレースのある行を再マップできない場合、その行は変更せず、次の行へ進みます。

上限

説明 上限
ソースマップの最大サイズ gzip 圧縮後 15 MB

簡単なプロジェクトを考えます。src/index.ts がアプリケーションのエントリポイントで、src/calculator.ts は基本的な四則演算をサポートする ComplexCalculator クラスを定義します。

  • wrangler.jsonc
  • tsconfig.json
  • src
    • calculator.ts
    • index.ts

ComplexCalculator クラスのエラーをデバッグするとき、ソースマップがどのように役立つかを見てみます。

ソースマップの再マップなしのスタックトレース

ソースマップをアップロードしていない場合: JavaScript が 1 ファイルに minify されているため、スタックトレースにファイル名がなく、行番号が正しくなく、ts ではなく js を誤って参照します。

ソースマップの再マップありのスタックトレース

ソースマップをアップロードした場合: すべてのメソッドが正しいファイルと行番号を参照します。

関連リソース

  • Tail Workers - Tail Workers を接続してログを変換し、HTTP エンドポイントへ送る方法を学びます。
  • リアルタイムログ - Workers のログをリアルタイムで取得する方法を学びます。
  • RPC のエラー処理 - RPC(Remote Procedure Call)越しの例外の扱いを学びます。

役に立ちましたか?