INTEGRITY Dokumentace

Zdrojové mapy a stack trace

Stack trace vám pomáhají s laděním kódu, když ve vaší aplikaci dojde k neošetřené výjimce. Trasování zásobníku ukazuje, které konkrétní funkce byly volány, v jakém pořadí, z kterého řádku a souboru a s jakými argumenty.

Většina kódu v JavaScriptu se před nasazením do produkce nejprve zabalí, často transpiluje a poté minifikuje. Tento proces vytváří menší balíčky pro optimalizaci výkonu a v případě potřeby převádí kód z TypeScriptu do JavaScriptu.

Zdrojové mapy převádějí zkompilovaný a minifikovaný kód zpět na původní kód, který jste napsali. Kombinují se se stack trace vráceným za běhu JavaScriptu, takže dostanete čitelný stack trace.

Zdrojové mapy

Chcete-li zapnout source maps, přidejte následující do konfiguračního souboru Workeru Konfigurace Wrangleru:

{
	"upload_source_maps": true
}
upload_source_maps = true

Když upload_source_maps je nastaveno na true, Wrangler automaticky vygeneruje a nahraje soubory se zdrojovými mapami, když spustíte wrangler deploy nebo wrangler versions deploy.

Stack trace

Když váš Worker vyvolá nezachycenou výjimku, načteme source mapu a pomocí ní namapujeme stack trace výjimky zpět na řádky původního zdrojového kódu vašeho Workeru.

Poté můžete zobrazit stack trace při streamování logy v reálném čase nebo v Tail Workers.

Když se Cloudflare pokouší přemapovat stack trace na zdrojovou mapu Workeru, dělá to řádek po řádku a přemapuje, co jen lze. Pokud nelze některý řádek stack trace z jakéhokoli důvodu přemapovat, Cloudflare ho ponechá beze změny a pokračuje na další řádek stack trace.

Limity

Popis Limit
Maximální velikost zdrojové mapy 15 MB komprimováno gzipem

Příklad

Uvažujme jednoduchý projekt. src/index.ts slouží jako vstupní bod aplikace a src/calculator.ts definuje třídu ComplexCalculator, která podporuje základní aritmetické operace.

Podívejme se, jak mohou source maps zjednodušit ladění chyby ve třídě ComplexCalculator.

Stack trace bez přemapování pomocí zdrojové mapy

S nebyly nahrány žádné zdrojové mapy: všimněte si, že veškerý JavaScript byl minifikován do jednoho souboru, takže ve stack trace chybí informace o názvu souboru, zobrazují se nesprávná čísla řádků a nesprávně se odkazuje na js místo ts.

Stack trace s přemapováním pomocí zdrojové mapy

S Source maps nahrány: všechny metody odkazují na správné soubory a čísla řádků.