INTEGRITY Dokumentace

Migrace z Wrangleru v3 na v4

Wrangler v4 je velké vydání zaměřené na aktualizace podkladových systémů a závislostí spolu s vylepšeními, díky nimž zůstávají příkazy Wrangleru konzistentní a přehledné. Na rozdíl od předchozích hlavních verzí Wrangleru, které byly zásadní přepisy a přepracovává architekturu : verze 4 Wrangleru přináší mnohem menší rozsah změn. Pokud Wrangler používáte již dnes, váš pracovní postup se velmi pravděpodobně nezmění.

U většiny uživatelů půjde o upgrade bez nutnosti zásahu (no-op), následující části ale popisují významnější změny a kroky potřebné k migraci.

Upgrade na Wrangler v4

Chcete-li ve svém projektu Worker přejít na nejnovější verzi Wrangler v4, spusťte:

npm i -D wrangler@4

Po upgradu můžete instalaci ověřit:

npx wrangler --version

Souhrn změn

Podrobné změny

Aktualizovaná zásada podpory Node.js

Wrangler nyní podporuje pouze verze Node.js odpovídající Oficiální životní cyklus Node.js:

Testy Wrangleru se na verzi v16 už nespouštějí a uživatelé, kteří tuto verzi stále používají, se mohou setkat s nepodporovaným chováním. Pokud stále používáte Node.js v16, musíte přejít na podporovanou verzi, abyste mohli i nadále využívat podporu a kompatibilitu s Wranglerem.

Týká se mě to?

Následujícím příkazem zkontrolujte svou verzi Node.js:

node --version

Musíte zasáhnout, pokud vaše verze začíná na v16 nebo v18 (například v16.20.0 nebo v18.20.0).

Chcete-li aktualizovat Node.js, viz Systémové požadavky Wrangleru. Cloudflare doporučuje používat nejnovější LTS verzi Node.js.

Aktualizovaná verze esbuild

Wrangler v4 aktualizuje esbuild z v0.17.19 na v0.24, což přináší vylepšení (například možnost použít using klíčové slovo s RPC) a změny v chování bundlování:

Uživatelé spoléhající na wildcard dynamické importy mohou zaznamenat zabalení nechtěných souborů. Před verzí esbuild v0.19, import příkazy s dynamickými cestami (například import('./data/' + kind + '.json')) nezabalil všechny soubory odpovídající glob vzoru (*.json). Pouze soubory výslovně odkazované nebo zahrnuté pomocí find_additional_modules byly sbaleny (bundled). Od esbuild v0.19 nyní importy se zástupnými znaky automaticky sbalují všechny soubory odpovídající vzoru glob. To může vést k nechtěnému sbalení souborů, proto je vhodné se dynamickým importům se zástupnými znaky vyhnout a použít místo nich explicitní importy.

Příkazy standardně používají lokální režim

Všechny příkazy nyní běží v ve výchozím nastavení lokální režim. Wrangler nabízí řadu příkazů pro přístup k prostředkům, jako jsou KV a R2, ale dříve nebylo jednotné, zda tyto příkazy běží v lokálním, nebo vzdáleném prostředí. Například D1 ve výchozím nastavení dotazovalo lokální úložiště dat a vyžadovalo --remote příznak pro dotazování přes API. KV se naproti tomu dříve standardně dotazovalo přes API (implicitně pomocí příznaku --remote příznak) a vyžadovalo --local příznak pro dotazování na lokální úložiště dat. Aby bylo chování napříč Wrangler konzistentní, každý příkaz nyní používá --local příznak ve výchozím nastavení a vyžaduje explicitní --remote příznak pro dotazování přes API.

Například:

Ti, kdo používají wrangler kv key a/nebo wrangler r2 object příkazy pro dotazování nebo zápis do svého datového úložiště budou muset přidat --remote příznak, abyste zopakovali předchozí chování.

Týká se mě to?

Zkontrolujte, zda některý z těchto příkazů používáte ve skriptech, CI/CD pipelines nebo manuálních postupech:

Příkazy KV:

Příkazy R2:

Musíte zasáhnout, pokud:

Prohledejte svou kódovou základnu a konfigurace CI/CD:

grep -rE "wrangler (kv|r2)" --include="*.sh" --include="*.yml" --include="*.yaml" --include="Makefile" --include="package.json" .

Co dělat:

Přidejte --remote k příkazům, které mají komunikovat s vaším účtem Cloudflare:

# Before (Wrangler v3 - queried remote by default)
wrangler kv key get --binding MY_KV "my-key"

# After (Wrangler v4 - must specify --remote)
wrangler kv key get --binding MY_KV "my-key" --remote

Zastaralé příkazy a konfigurace odstraněny

Všechny dříve zastaralé funkce v Wrangler v2 a v Wrangler v3 byly nyní odstraněny. Kromě toho byly nyní odstraněny i následující funkce, které byly označeny jako zastaralé během vydání Wrangler v3:

Týká se mě to?

Zkontrolujte konfigurační soubor Wrangler (wrangler.toml, wrangler.json, nebo wrangler.jsonc) pro zastaralá nastavení:

# For TOML files
grep -E "(legacy_assets|node_compat|usage_model)\s*=" wrangler.toml

# For JSON files
grep -E "\"(legacy_assets|node_compat|usage_model)\"" wrangler.json wrangler.jsonc

Zkontrolujte své příkazy a skripty pro zastaralé příznaky:

grep -rE "wrangler.*(--legacy-assets|--node-compat)" --include="*.sh" --include="*.yml" --include="*.yaml" --include="Makefile" --include="package.json" .

Zkontrolujte použití zastaralého API ve vašem kódu:

grep -rE "getBindingsProxy" --include="*.js" --include="*.ts" --include="*.mjs" .

Musíte zasáhnout, pokud zjistíte některou z následujících skutečností:

Zastaralé Náhrada
legacy_assets konfiguraci nebo --legacy-assets příznak Migrace na Workers Static Assets
node_compat konfiguraci nebo --node-compat příznak Použijte nodejs_compat příznak kompatibility
usage_model konfigurace Odeberte jej (již nemá žádný účinek)
wrangler version příkaz Použijte wrangler --version
getBindingsProxy() import Použijte getPlatformProxy() (stejné argumenty)
wrangler publish příkaz Použijte wrangler deploy
wrangler generate příkaz Použijte npm create cloudflare@latest
wrangler pages publish příkaz Použijte wrangler pages deploy