INTEGRITY Dokumentace

Kompatibilita s Node.js

Při psaní Workeru možná budete potřebovat importovat balíčky z npm. Mnoho npm balíčků se spoléhá na API z Runtime Node.js, a nebude fungovat, pokud nejsou dostupná tato Node.js API.

Cloudflare Workers poskytuje podmnožinu Node.js API ve dvou formách:

  1. Jako vestavěná API poskytovaná Workers Runtime. Většina těchto API je plnou implementací odpovídajících API v Node.js, zatímco několik z nich je podporováno jen částečně.
  2. Jako implementace polyfill shimů, které Wrangler přidává do kódu vašeho Workeru, což mu umožňuje modul importovat, ale volání metod API vyvolá chyby.

Začínáme

Pro data kompatibility 2026-08-04 nebo novější Workers povolí oba nodejs_compat a nodejs_compat_v2 ve výchozím nastavení. Vestavěná Node.js API a polyfilly jsou dostupné bez dalšího nastavení.

Pro tato data kompatibility nodejs_compat a nodejs_compat_v2 se nepoužívají, protože stejné chování zajišťuje datum kompatibility. Stávající projekty tyto příznaky při aktualizaci data kompatibility odstraňovat nemusí. V nových konfiguracích je vynechte.

Pro data kompatibility od 2024-09-23 přes 2026-08-03, přidejte nodejs_compat příznak kompatibility do Konfigurační soubor Wrangler abyste se přihlásili:

{
	"compatibility_date": "2026-08-03",
	"compatibility_flags": ["nodejs_compat"]
}
compatibility_date = "2026-08-03"
compatibility_flags = [ "nodejs_compat" ]

Chcete-li úplně vypnout kompatibilitu s Node.js s datem kompatibility 2026-08-04 nebo novější odeberte pozitivní příznaky, pokud jsou přítomné. Poté přidejte oba no_nodejs_compat a no_nodejs_compat_v2. Příklady konfigurace najdete v Příznak kompatibility s Node.js.

Podporovaná rozhraní API Node.js

Runtime API z Node.js uvedená v této části se stavem "🟢 supported" jsou v Workers Runtime aktuálně nativně podporována. Položky se stavem "🟡 partially supported" zahrnují použitelná API, ale neimplementují celý povrch API Node.js.

Zastaralá nebo experimentální rozhraní API z Node.js, a rozhraní API, která se nehodí do bezserverového kontextu, nejsou zahrnuta v seznamu podporovaných API v této části. Některé pouze importovatelné náhrady pro tato API jsou uvedeny samostatně v Nefunkční stub moduly.

Název API Nativně podporováno v Workers Runtime
Testování pomocí assertions 🟢 podporováno
Sledování asynchronního kontextu 🟢 podporováno
Buffer 🟢 podporováno
Konzole 🟡 částečně podporováno
Crypto 🟢 podporováno
Debugger 🟢 podporováno přes Integrace Chrome DevTools
Diagnostics Channel 🟢 podporováno
DNS 🟡 částečně podporováno
Chyby 🟢 podporováno
Události 🟢 podporováno
Souborový systém 🟢 podporováno
Globální proměnné 🟢 podporováno
HTTP 🟢 podporováno
HTTPS 🟢 podporováno
Modul 🟡 částečně podporováno
Síť 🟢 podporováno
OS 🟡 částečně podporováno
Cesta 🟢 podporováno
Performance hooks 🟡 částečně podporováno
Proces 🟢 podporováno
Punycode (zastaralé) 🟢 podporováno
Řetězce dotazu 🟢 podporováno
Stream 🟢 podporováno
Dekodér řetězců 🟢 podporováno
Spouštěč testů 🟡 částečně podporováno
Časovače 🟢 podporováno
TLS/SSL 🟡 částečně podporováno
URL 🟢 podporováno
Nástroje 🟢 podporováno
Web Crypto API 🟢 podporováno
Web Streams API 🟢 podporováno
Zlib 🟢 podporováno

Pokud není uvedeno jinak, nativní implementace Node.js API ve Workers mají odpovídat implementaci v Aktuální verze Node.js.

Pokud vám v nabídce chybí API, které chcete použít, a chtěli byste navrhnout, aby jej Workers podporovaly, přidejte příspěvek nebo komentář na Kategorie diskuzí k Node.js API na GitHubu.

Nefunkční stub moduly

Některé moduly Node.js jsou dostupné jen jako nefunkční stuby. Stub lze importovat nebo require, ale neposkytuje funkční implementaci odpovídajícího Node.js API. Tyto stuby existují proto, aby se v prostředí Workers daly načíst balíčky, které kontrolují přítomnost modulu, pro přímé použití v kódu aplikace ale vhodné nejsou.

Následující stuby se automaticky povolí pouze v případě, že nodejs_compat příznak kompatibility je povolen a datum kompatibility Workeru je na zobrazeném datu nebo po něm. Chcete-li chování povolit dříve, přidejte odpovídající povolovací příznak. Chcete-li ho po tomto datu ponechat nedostupné, přidejte odpovídající zakazovací příznak.

Stub modul Povoleno pomocí nodejs_compat od dne nebo později Povolit příznak Zakázat příznak
node:http2 2025-09-01 enable_nodejs_http2_module disable_nodejs_http2_module
node:vm 2025-10-01 enable_nodejs_vm_module disable_nodejs_vm_module
node:cluster 2025-12-04 enable_nodejs_cluster_module disable_nodejs_cluster_module
node:domain 2025-12-04 enable_nodejs_domain_module disable_nodejs_domain_module
node:trace_events 2025-12-04 enable_nodejs_trace_events_module disable_nodejs_trace_events_module
node:wasi 2025-12-04 enable_nodejs_wasi_module disable_nodejs_wasi_module
node:_stream_wrap 2026-01-29 enable_nodejs_stream_wrap_module disable_nodejs_stream_wrap_module
node:dgram 2026-01-29 enable_nodejs_dgram_module disable_nodejs_dgram_module
node:inspector 2026-01-29 enable_nodejs_inspector_module disable_nodejs_inspector_module
node:sqlite 2026-01-29 enable_nodejs_sqlite_module disable_nodejs_sqlite_module
node:child_process 2026-03-17 enable_nodejs_child_process_module disable_nodejs_child_process_module
node:readline 2026-03-17 enable_nodejs_readline_module disable_nodejs_readline_module
node:repl 2026-03-17 enable_nodejs_repl_module disable_nodejs_repl_module
node:tty 2026-03-17 enable_nodejs_tty_module disable_nodejs_tty_module
node:v8 2026-03-17 enable_nodejs_v8_module disable_nodejs_v8_module
node:worker_threads 2026-03-17 enable_nodejs_worker_threads_module disable_nodejs_worker_threads_module

Polyfilly pro Node.js API

Rozhraní Node.js API, která zatím nejsou podporována v runtime Workers, jsou polyfillována pomocí Wrangler, který používá unenv. Pokud nodejs_compat příznak kompatibility je povoleno a vašeho Workeru compatibility date je 2024-09-23 nebo novější, Wrangler automaticky vloží polyfilly do kódu vašeho Workeru.

Přidání polyfillů maximalizuje kompatibilitu se stávajícími balíčky npm tím, že poskytuje moduly s mockovanými metodami. Volání těchto mockovaných metod buď neudělá nic (noop), nebo vyvolá chybu se zprávou podobnou této:

[unenv] <method name> is not implemented yet!

To vám umožňuje importovat balíčky, které tyto moduly Node.js používají, i když některé metody nejsou podporovány.

Povolit pouze AsyncLocalStorage

Pokud potřebujete povolit pouze Node.js AsyncLocalStorage API můžete povolit nodejs_als příznak kompatibility:

{
	"compatibility_flags": ["nodejs_als"],
}
compatibility_flags = [ "nodejs_als" ]